İ 需要 ffmpeg 合并 2 视频的帮助



我在下面编写的代码将两个视频文件渲染为1080p res,播放第一个视频一段时间(5秒(,然后播放第二个视频前景,第一个视频的音频仍在后台播放。

第二个视频的长度作为基准持续时间。 如果第二个视频的持续时间短于第一个视频,则视频冻结并且音频继续播放。如果第二个视频比第一个视频长,则视频将按照第一个视频时长继续。

string ar = $"-y -i "{videoModel.dosya_yolu}" -i "video.mp4" -filter_complex "[1:v] scale=1920:1080 [a]; [0:v] scale=1920:1080 [b]; [b] [a] overlay=enable=gte(t\,{baslangic}):x=0:y=0:shortest=1[out]" -map [out] -map 0:a -c:v libx264 -crf 24 -preset ultrafast -c:a copy "{cikti}"";

我想做的是:

  1. 如果第二个视频较短,它应该重新开始并继续播放,直到第一个视频结束,而不是冻结
  2. 即使每个视频大约 800mb,它也会渲染 4-5GB。需要在不降低分辨率的情况下将其最小化
  3. 除非两个视频具有不同的分辨率,否则它不应修改分辨率。

İ 处理它

1-

string ar = $"-y -i "{videoModel.dosya_yolu}" -stream_loop -1 -i "video.mp4" -filter_complex "[1:v] scale=1920:1080 [a]; [0:v] scale=1920:1080 [b]; [b] [a] overlay=enable=gte(t\,{baslangic}):x=0:y=0:shortest=1[out]" -map [out] -map 0:a -vcodec libx264 -crf 30 -preset veryslow -c:a copy "{cikti}"";

最新更新