如何使用 PHP-FFmpeg 或 FFmpeg 命令删除视频的当前音频并将该视频与其他音频文件(mp3)合并。
情况 1:音频时长为 8 分钟,视频时长为 22 秒。在这种情况下:音频结束时循环播放视频。
情况 2:音频时长为 8 分钟,视频时长为 10 分钟。在这种情况下:音频结束时将停止并保存一个新的 mp4 文件。
答案1
对于每种情况,你都需要两个不同的命令,但都非常简单:情况 1:
-stream_loop -1
无限循环播放一个文件;此处用到的其他选项将在案例 2 中解释
ffmpeg -stream_loop -1 -i video.mp4 -i audio.mp3 -shortest -map 0:v -map 1:a -c copy output.mp4
情况 2:对于这种情况,你应该使用-shortest
标志,当最短输入终止时强制输出终止。
-map功能使这变得简单。
这个问题很好,因为两种情况都允许极其执行速度快,因为不需要重新编码。(确保通过-c copy
以利用这一点!)
以下是一句话:
ffmpeg -i video.mp4 -i audio.mp3 -shortest -c copy -map 0:v -map 1:a output.mp4