IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python获取mp3音频文件时长方法汇总 -> 正文阅读

[Python知识库]Python获取mp3音频文件时长方法汇总

'''
    pymediainfo: pip3 install pymediainfo       版本:5.1.0
    不支持网络音频
'''
class pymediainfoTest():
    @classmethod
    def getAudioTimes(cls, audio_path):
        __lib_pymediainfo = __import__('pymediainfo', fromlist=['MediaInfo'])
        media_info = __lib_pymediainfo.MediaInfo.parse(audio_path)
        data = json.loads(media_info.to_json())
        # 多声道
        duration = data['tracks'][0]['duration']
        duration1 = data['tracks'][1]['duration']
        print(duration, data['tracks'][0]['other_duration'])
        print(duration1, data['tracks'][1]['other_duration'])
# pymediainfoTest.getAudioTimes(music_url)

'''
    mutagen: pip3 install mutagen       版本:1.45.1
    不支持网络音频
'''
class MutagenTest():
    @classmethod
    def getAudioTimes(cls, audio_path):
        __lib_mutagen = __import__('mutagen', fromlist=['mp3'])
        audio = __lib_mutagen.mp3.MP3(audio_path)
        mp3_times = int(audio.info.length)
        f = int(mp3_times/60)
        m = mp3_times - f * 60
        print('%s秒, %s分%s秒' % (mp3_times, f, m))
# MutagenTest.getAudioTimes()

'''
    librosa: pip3 install librosa      版本:0.9.1          http://librosa.org/doc/latest/index.html
    不支持网络音频
    错误: audioread.exceptions.NoBackendError
    解决:找到ffdec.py文件(python/lib/site-packages/audioread/ffdec.py),打开找到COMMANDS = (‘ffmpeg’, ‘avconv’)这行,将’ffmpeg’修改成你的ffmpeg.exe的路径(建议路径引号前面加上r)。
    速度慢
'''
class LibrosaTest():
    __slots__ = ()
    # 取音频时长
    @classmethod
    def getAudioTimes(cls, audio_path):
        __lib_librosa = __import__('librosa')
        duration = __lib_librosa.get_duration(filename=audio_path)
        print(duration)
# LibrosaTest.getAudioTimes()

'''
    pydub: pip3 install pydub       版本:0.25.1           https://github.com/jiaaro/pydub
    需要下载ffmpeg:
        https://ffmpeg.org/-->download-->windows builds by BtbN-->ffmpeg-master-latest-win64-gpl.zip(104M)
    解压后将/bin添加到系统环境变量path中,重启vscode才会生效
'''
class PydubTest():
    __lib_pydub = __import__('pydub')
    # 方法一,支持网络音频
    @classmethod
    def getAudioTimes(cls):
        song = cls.__lib_pydub.utils.mediainfo(music_url)
        print(song['duration'])
    # 方法二,不支持网络音频
    @classmethod
    def getAudioTimes1(cls):
        sound = cls.__lib_pydub.AudioSegment.from_mp3(music_url)
        #获取文件时长
        print(sound.duration_seconds)
# PydubTest.getAudioTimes1()

'''
    ffprobe: 下载ffmpeg     版本:5.0
    通过命令行调用,支持网络音频
'''
class FfprobeTest():
    @classmethod
    def getAudioTimes(cls, audio_path):
        __lib_subprocess = __import__('subprocess')
        __lib_json = __import__('json')
        # 没有添加系统环境变量,也可以指定ffprobe的路径
        command = "ffprobe -loglevel quiet -print_format json -show_format -show_streams -i %s" % (audio_path)
        result = __lib_subprocess.Popen(command, shell=True, stdout=__lib_subprocess.PIPE, stderr=__lib_subprocess.STDOUT)
        out = result.stdout.read()
        temp = str(out.decode('utf-8'))
        info = __lib_json.loads(temp)
        print(info['streams'][0]['duration'])
FfprobeTest.getAudioTimes(music_url)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 12:58:23  更:2022-03-06 13:02:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:51:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码