ffmpeg 切割音频文件,各种格式(wav, flac, mp3, m4a等)

动机

想要用pydub切割音频来制作数据集,结果发现ffmpeg不支持m4a格式的数据输出。

复制代码
from pydub import AudioSegment
path = r"D:\data\upload"
save_path = r"D:\data\train\upload"

files = os.listdir(path)

for file in files:
    audio = AudioSegment.from_file(path+'\\'+file, "flac")

    size = 2000  # 切割的毫秒数 60s=60000
    chunks = make_chunks(audio, size)
    for i, chunk in enumerate(chunks):
        chunk_name = file.split('.')[0] + f"_{i}.flac"
        print(chunk_name)
        chunk.export(save_path+'\\'+chunk_name, format="flac")

报错信息:

Input #0, wav, from 'C:\Users\AAA\AppData\Local\Temp\tmp_g6wtefp':

Duration: 00:00:02.00, bitrate: 512 kb/s

Stream #0:0: Audio: pcm_s16le (1000 / 0x0001), 32000 Hz, 1 channels, s16, 512 kb/s AVFormatContext @ 0000027c7f0bb680 Requested output format 'm4a' is not known.

解决办法

参考了大佬的使用 ffmpeg 来对音频文件(mp3、m4a 等)进行分割 方法,但是一条一条输命令太麻烦了,所以用python的os.system来试着自动化。这里记录一下方便以后使用。

复制代码
files = os.listdir(path)

for file in files:
    # audio = AudioSegment.from_file(path+'\\'+file, "m4a")
    cmd = f"ffmpeg -i {path}\{file} -f segment -segment_time 2 -write_xing 0 -c copy {save_path}\{file.split('.')[0]}_%d.m4a"
    os.system(cmd)

ffmpeg -i file.m4a -f segment -segment_time 900 -write_xing 0 -c copy out%03d.m4a

  • -i:输入文件;
  • -f:强制格式,即目标格式,这里指定为 segment,即分割;
  • -segment_time:每段的时长,单位为秒,示例是按每 5 分钟来切割;
  • -c:指定编码名称(codec),这里我们不打算重新编码,于是用 copy,非常快;
  • write_xing 0:参数指示禁用Xing头部信息的写入
相关推荐
开开心心就好1 小时前
课堂随机点名工具,绿色版免安装双击即用
java·服务器·前端·ffmpeg·音视频·perl·symfony
小鹿软件办公2 小时前
不依赖 FFmpeg 也能录屏?ShareX 22 新增录屏等十余款新工具
ffmpeg·sharex·免费录屏工具
lll23526917794 小时前
Android APP短视频音频提取,主流工具怎么选
ffmpeg·音视频
成都旺小宝科技21 小时前
首访决策人没来,AI一客一策两天成交!
大数据·人工智能·机器学习·ffmpeg·语音识别
余槐i1 天前
加了Cookie yt-dlp仍报HTTP 403:3个容易漏的请求头差异
python·http·ffmpeg·开发工具·yt-dlp
余槐i1 天前
yt-dlp 线程开到 16 反而更慢:1000 个视频的实测与限速原因
性能优化·ffmpeg·自动化·开发工具·yt-dlp
Maxwin2 天前
Manim 竖屏画布选 9×16 还是 4.5×8?从 font_size 和每单位像素数说起
python·ffmpeg
FlightYe2 天前
音视频修炼之容器与协议(一):MP4和MOV的box剖析
android·linux·c++·ffmpeg·音视频
开开心心就好6 天前
手机虚拟化学实验室,混合燃烧都能模拟
jupyter·智能手机·ffmpeg·计算机外设·电脑·音视频·visual studio
VidDown6 天前
用户说“卡顿“,服务器一切正常:播放质量监测与 QoE 指标
运维·服务器·ffmpeg·音视频·视频