FFMPEG 在转换视频格式时添加音轨

FFMPEG 在转换视频格式时添加音轨

背景

我需要将 AVI 文件转换为 H264 (MP4)。我已成功完成此操作,如下所示:

-i mymovie.avi -c:v libx264 -crf 19 -preset slow -c:a libfaac -pix_fmt yuv420p -f mp4 -b:a 192k -y -an output.mp4

我正在通过 C# .Net Winforms 应用程序调用该命令,尽管我怀疑这对答案影响不大。

问题

如何添加音轨?我需要添加一个音轨,因为我需要能够将视频上传到 Instagram,但它似乎拒绝没有音轨的文件(这让我很恼火)。实际上我不需要很长的音轨。我的想法是 MP3 格式的几秒钟“静音”。

我想我需要 AAC 音频作为输出。

据记录,我还意识到该-an命令不会提供音频,并且我在后来的尝试中已经解决了这个问题。

迄今为止的尝试

我了解到我需要使用该-shortest命令,因为音频会比视频短。实际上,我将添加一个空白 MP3(或类似文件),以便在编码时获得嵌入视频的音频流。

我也尝试使用该-map命令但没有成功。

答案1

libfaac好的,这是我正在运行的命令。我发现我的 ffmpeg 版本中没有这个命令,所以我切换了。我-map也不需要这些选项,因为 FFMPEG 可以很好地处理 2 个输入,而无需额外的配置。

-i test.avi -i music.mp3 -c:v libx264 -crf 19 -preset slow -c:a libvo_aacenc -pix_fmt yuv420p -f mp4 -b:a 192k -y -shortest output.mp4

我的作品和原作的区别在于:

  • libvo_aacenc 替换libfaac
  • -shortest添加是为了处理比视频更短的音频
  • -i用于提供音频输入

更新

在评论中输入了一些精彩内容后,该命令现在

-i test.avi -i music.mp3 -c:v libx264 -crf 19 -preset slow -c:a aac -strict experimental -pix_fmt yuv420p -f mp4 -b:a 192k -y -shortest output.mp4

答案2

您可以使用aevalsrc音频源

ffmpeg -y -i test.avi -f lavfi -i aevalsrc=0 -c:v libx264 -crf 19 -preset slow \
-pix_fmt yuv420p -shortest output.mp4

这比使用空白音频文件作为输入更容易。

相关内容