我们有一个 Quicktime 未压缩文件,没有音频,还有一个 1 声道音频文件。
最后,我需要 2 个文件:
- uncompress.mov,带左音频
- 编解码器:h.264 包装器:.mov 左声道音频。
我需要将音频添加到左声道
ffmpeg -i video.mov -i audio.mp3 -c:v copy -c:a aac -strict experimental video.mov
映射通道
ffmpeg -i input -map_channel 0.0.0 output
转换为 mp4
ffmpeg -i my-video.mov -vcodec h264 -acodec mp2 my-video.mp4
将 mp4 导出到 wrapper.mov
ffmpeg -i file.mp4 file.mov
这有意义吗或者有更好的方法吗?
答案1
此命令将视频文件转换为MPEG-4
,将添加mp3
到输出作为左音频通道,并将结果保存在mov
包装器中。
ffmpeg -i input.mov \
-i input.mp3 \
-vcodec h264 \
-acodec aac \
-map_channel 1.0.0\
-map_channel -1 \
-map 0:0 -map 1:0 \
-f mov output.mov
此命令将添加mp3
到输出作为左音频通道,而不改变原始输入视频文件的编码。
ffmpeg -i input.mov \
-i input.mp3 \
-vcodec copy \
-acodec aac \
-map_channel 1.0.0\
-map_channel -1 \
-map 0:0 -map 1:0 \
-f mov output.mov
答案2
有几种方法可以做到这一点,您只需一个命令即可完成所有操作。
-地图通道
您可以使用以下-map_channel
选项:
ffmpeg -i video.mov -i audio.mp3 -map_channel 1.0.0 -map_channel -1 -c:v copy -c:a pcm_s16le uncompress.mov -map_channel 1.0.0 -map_channel -1 -c:v libx264 -c:a aac output.mov
值-map_channel
参考input file ID.stream specifier.channel ID
。立体声channel ID
左声道为0
,右声道为1
。
平底锅过滤器
或者使用平底锅过滤器:
ffmpeg -i video.mov -i audio.mp3 -af "pan=stereo|FL=FL" -c:v copy -c:a pcm_s16le uncompress.mov -af "pan=stereo|FL=FL" -c:v libx264 -c:a aac output.mov
或者对两个输出使用一个 pan 实例:
ffmpeg -i video.mov -i audio.mp3 -filter_complex "[1:a]pan=stereo|FL=FL,asplit[a0][a1]" -map 0:v -map "[a0]" -c:v copy -c:a pcm_s16le uncompress.mov -map 0:v -map "[a1]" -c:v libx264 -c:a aac output.mov