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

时间:2019-11-21 08:51:05

标签: video ffmpeg video-encoding

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

该视频包含以下材料:

  1. 原始视频

  2. 视频配音

  3. 背景音乐

  4. 字幕

我的代码逻辑如下

  1. 将“原始视频”和“视频配音”合并为“视频A”

  2. 字幕“视频A”作为“视频B”

  3. 为“视频B”添加“背景音乐”作为“视频C”

“视频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

设计缺陷

  • 我认为我的代码非常多余
  • 表现不佳
  • 编码很多次
  • 生成这样的视频花费太长时间
  • CPU使用率已达到100%。

我的问题

如何解决以上问题?

1 个答案:

答案 0 :(得分:3)

使用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