-地图通道

-地图通道

我们有一个 Quicktime 未压缩文件,没有音频,还有一个 1 声道音频文件。
最后,我需要 2 个文件:

  • uncompress.mov,带左音频
  • 编解码器:h.264 包装器:.mov 左声道音频。

  1. 我需要将音频添加到左声道

    ffmpeg -i video.mov -i audio.mp3 -c:v copy -c:a aac -strict experimental video.mov
    
  2. 映射通道

    ffmpeg -i input -map_channel 0.0.0 output
    
  3. 转换为 mp4

    ffmpeg -i my-video.mov -vcodec h264 -acodec mp2 my-video.mp4
    
  4. 将 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

另请参阅

相关内容