首页 > 解决方案 > ffmpeg如何将pcm编解码器标签添加到输出

问题描述

在 Python 脚本中,我想将字节从 ogg 转换为 wav,而不需要处理硬盘上的任何数据。我这样做是这样的:

args = (
        ffmpeg
        .input('pipe:')
        .output('pipe:', format='s16le', acodec='pcm_s16le')
        .get_args()
       )
p = subprocess.Popen(['ffmpeg'] + args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
wav = p.communicate(input=bindata)[0]

它有效,但产生的结果与实际不同ffmpeg -i sample.ogg sample.wav。不同之处可以在 ffmpeg 的元数据部分的 otput 中找到:

ffmpeg -i 样本.ogg 样本.wav

Metadata:
    ...
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s16, 768 kb/s
    ...

Python

Metadata:
    ...
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, mono, s16, 768 kb/s
    ...

所以,我想知道,如何将此([1][0][0][0] / 0x0001)标签添加到 Python 变体

标签: pythonaudioffmpegpcm

解决方案


推荐阅读