ffmpeg 音轨提取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg 音轨提取相关的知识,希望对你有一定的参考价值。
mov格式的视频文件往往有多个pcm音轨,一般16个。今天在测试提取音轨转成MP3总是失败,有大神指点一下么?先谢为敬
参考技术A 先说需求,从图中可以看出你的源有2个音频轨,每一轨都有16个channel,你想要输出成啥样的?如果是一轨一个文件,还是16channel,用-map分离轨道,-c copy直接保留16 channel的PCM。最新的AAC是否支持16channel我不太清楚,但是既然你现在用的ffmpeg里自带的AAC不支持,要么重新手动编译换支持的,要么就只能保留PCM,或者你也可以把channel数量降下来,比如降成立体声,-ac 2本回答被提问者和网友采纳 参考技术B 你使用的 ffmpeg 这款软件没用过,到是会声会影是绝对可以,想放那里就放那里,一目了然。另外:你知道使用 ffmpeg ,你可试一下,将一段音频嵌入视频中的指定的位置,播放一下看是不是可以做到,如可以再调整就行了。
如何使用 VLC 或 FFMPEG 命令行将外部音轨添加到视频文件
【中文标题】如何使用 VLC 或 FFMPEG 命令行将外部音轨添加到视频文件【英文标题】:How to add an external audio track to a video file using VLC or FFMPEG command line 【发布时间】:2013-12-13 19:48:42 【问题描述】:我想使用 bash 脚本将 audio.mp3 音轨添加到无声 video.mp4 文件中,“cvlc”“ffmpeg”命令行的正确语法是什么?
我使用 VLC 和 --no-audio 选项录制了视频,因此没有可以从原始视频复制的比特率或编码等设置。
【问题讨论】:
【参考方案1】:流复制
stream copy 的示例,或重新复用来自video.mp4
的视频(输入0
)和来自audio.mp3
的音频(输入1
):
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -codec copy -shortest out.mp4
这将避免编码,因此速度非常快,不会影响质量。
重新编码
如果您确实需要重新编码大小或需要与输入不同的格式,您可以告诉 ffmpeg 使用什么编码器。重新编码为 H.264 视频和 AAC 音频的示例:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -codec:v libx264 \
-preset medium -crf 23 -codec:a aac -b:a 192k -shortest output.mp4
注意事项:
-map
选项允许您指定所需的流,例如,-map 0:v
指的是第一个输入的视频流。如果你不告诉 ffmpeg 你想要什么流,那么它将使用默认的stream selection,即为每种流类型选择一个流。默认值通常很好,但建议明确,这样您可以获得预期的结果。
-shortest
选项指示 ffmpeg 在最短持续时间输入结束时结束输出文件。
始终建议使用最近的 ffmpeg 版本。最简单的方法是download a recent ffmpeg build,但您也可以关注guide to compile ffmpeg。
另见:
FFmpeg Wiki: H.264 Video Encoding Guide FFmpeg Wiki: AAC Audio Encoding Guide【讨论】:
感谢您的回答,我已经尝试了您的两个建议,它返回以下错误消息:无法识别选项“编解码器”无法为选项“编解码器”设置值“复制” 我尝试使用 'vcodec' 选项并返回:应用程序在流 0: 50 >= 50 中向多路复用器提供了无效的、非单调递增的 dts @Jonathan 您需要显示您的实际 ffmpeg 命令和完整的 ffmpeg 控制台输出。 一个简短的说明,它只是帮助我使用 avconv 而不是 ffmpeg:因为 avconv 实际上是 ffmpeg 的一个分支,所以按原样使用上面的第一个确切的命令行“流复制”并替换 ' ffmpeg' 和 'avconv' 对我来说工作得很好。 HTH! 我对来自 youtube 的数据进行了测试,该数据分别流式传输音频和视频;在获得源数据(通过 httpfox 和 wget)后,第一个命令正确地重新组合了源文件。以上是关于ffmpeg 音轨提取的主要内容,如果未能解决你的问题,请参考以下文章