需要合并 2 个 FFMPEG 命令

需要合并 2 个 FFMPEG 命令

我目前使用此命令来合并视频、水印图像和音轨 -

ffmpeg -y -an -i L4472.mp4 -vn -i TTS-Audio-Music.mp4 -i IGR-Video-Service-75%.png -filter_complex "[0][2]overlay=10:10:format=yuv420" -c:v libx264 -crf 17 -pix_fmt yuv420p -c:a copy Z:\02Videos\Final\L4472.mp4

音频文件为 15 秒,但我的一些视频只有 5-6 秒,所以我需要循环播放视频才能播放整个音频文件。我首先尝试使用

ffmpeg -stream_loop -1 -i L4472.mp4 -t 15 -c copy Z:\02Videos\Final\L4472.mp4

然后运行第一个代码,但总是出现错误,并且输出文件无法播放。

我之前尝试使用 2 个单独的命令添加水印和音频时遇到过类似的问题。所以我想用一个代码来同时完成所有这些操作。

另外,我想确保视频文件中的原始音轨不会在输出中使用。所以请帮我找到一种方法,使用单个命令将这 3 个合并为 1 个输出:

  1. 视频(无原始音频),循环播放 15 秒
  2. 水印图像
  3. 音轨

您可以从此链接下载我使用的 3 个示例文件 -https://we.tl/t-HtyzDy7lAw

提前感谢您的时间和帮助。

答案1

-stream_loop -1在 之前添加-i L4472.mp4,并-shortest在 之前添加-c:v

  • -stream_loop -1对 之后的输入应用无限循环-i
  • -shortest当最短输入流结束时完成编码(由于视频持续时间无限,因此音频流将是最短的)。

示例命令:

ffmpeg -y -an -stream_loop -1 -i L4472.mp4 -vn -i TTS-Audio-Music.mp4 -i IGR-Video-Service-75.png -filter_complex "[0][2]overlay=10:10:format=yuv420" -shortest -c:v libx264 -crf 17 -pix_fmt yuv420p -c:a copy Final_L4472.mp4

相关内容