如何解决使用ffmpeg生成复杂视频性能低的问题?

How to solve the problem of low performance of complex video generation using ffmpeg?

我使用 ffmpeg 生成一个复杂的视频。

本视频包含以下素材:

  1. 原视频

  2. 视频配音

  3. 背景音乐

  4. 副标题

我的代码逻辑如下

  1. 将'Original video'和'Video dub'合并为'Video A'

  2. 副标题 'Video A' 为 'Video B'

  3. 为 'Video B' 添加 'Background music' 作为 'Video C'

'Video C'是我要的视频

我的代码

// Step1:
ffmpeg -i VideoDub.mp3 -i OriginalVideo.mp4 VideoA.mp4
// Step2:
ffmpeg -i VideoA.mp4 -vf subtitles=Subtitle.srt -y VideoB.mp4
// Step3:
ffmpeg -i VideoB.mp4 -i BackgroundMusic.mp3 -filter_complex "[1:a]aloop=loop=-1:size=2e+09[out];[out][0:a]amix" -ss 0 -t 100 -y VideoC.mp4

设计缺陷

我的问题

如何解决以上问题?

使用 filter_complex 在一个命令中执行所有过滤。

ffmpeg -i OriginalVideo.mp4 -i VideoDub.mp3 -stream_loop -1 -i BackgroundMusic.mp3 -filter_complex "[0:v]subtitles=Subtitle.srt;[2][1]amix" -ss 0 -t 100 VideoC.mp4 -y