使用ffmpeg,linux提取音频

Posted

技术标签:

【中文标题】使用ffmpeg,linux提取音频【英文标题】:Extract audio with ffmpeg, linux 【发布时间】:2019-09-29 22:37:09 【问题描述】:

我正在尝试从一些 Avi 视频中提取音轨并将它们保存到自己的文件中,最好不要重新编码。

我已经查看了这里 https://www.ffmpeg.org/ffmpeg.html#Audio-Options 和这里 ffmpeg to extract audio from video 虽然无论我尝试哪种方法我都会遇到错误。

我最新的命令字符串是:

ffmpeg -i /home/d/Pictures/Test/input-video.AVI -map 0:a -vn -acodec copy /home/d/Pictures/Test/output-audio.m4a

输出的关键部分是:

Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from '/home/d/Pictures/Test/input-video.AVI':
  Duration: 00:00:05.94, start: 0.000000, bitrate: 18131 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 17995 kb/s, 30.28 fps, 30.28 tbr, 30.28 tbn, 30.28 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 11025 Hz, 1 channels, s16, 176 kb/s
File '/home/d/Pictures/Test/output-audio.m4a' already exists. Overwrite ? [y/N] y
[ipod @ 0x1d89520] Codec for stream 0 does not use global headers but container format requires global headers
[ipod @ 0x1d89520] Could not find tag for codec pcm_s16le in stream #0, codec not currently supported in container
Output #0, ipod, to '/home/d/Pictures/Test/output-audio.m4a':
  Metadata:
    encoder         : Lavf56.40.101
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 11025 Hz, mono, 176 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

我相信我从这个输出中得到了正确的音频流编号,因此我假设“-map 0:a”部分不是问题。

我在 Linux Mint 18.1 上运行

【问题讨论】:

【参考方案1】:

MP4 系列格式不存储 PCM 音频,因此您必须重新编码或保存为另一种格式,例如 Matroska。

ffmpeg -i video.AVI -map 0:a -vn -acodec copy audio.mka

【讨论】:

太好了,效果很好,谢谢。让我进一步了解一下,PCM 是否实际上并没有被压缩,这就是为什么它不被支持?即在您的示例中是否使用了一些压缩? PCM 未压缩,ffmpeg 不支持,因为文件格式标准(ISO 14496)不支持。我的命令按原样复制流

以上是关于使用ffmpeg,linux提取音频的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ffmpeg 提取 8khz 的音频

使用 ffmpeg 和 python 将视频中的所有音频流提取到单独的音频文件中

当我使用 ffmpeg 从视频中提取音频时,出现错误

如何使用 ffmpeg 从 MPEG-4 文件中提取音频 [关闭]

fluent-ffmpeg 使用流式提取音频

使用ffmpeg从视频文件中提取音频文件视频抽帧和切割视频