FFmpeg 如何叠加两个透明度为 0.5 的视频

FFmpeg 如何叠加两个透明度为 0.5 的视频

我有一个命令存在一些问题。如果一个视频的长度较短,那么第二个视频。第一个视频将暂停,第二个将继续播放。另一个问题是这个命令非常慢

ffmpeg -i vid1.mp4 -i Vid2.mp4 -filter_complex "[1:0] setsar=sar=1,format=rgba [1sared]; [0:0]format=rgba [0rgbd]; [0rgbd][1sared]blend=all_mode='addition':repeatlast=1:all_opacity=1,format=yuva422p10le" -c:v libx264 -preset slow -tune film -crf 19 -c:a aac -shortest result.mp4

答案1

如果一个视频的长度较短,则第二个视频将暂停,第二个视频将继续播放

repeatlast=1用。。。来代替shortest=1

ffmpeg -h filter=blend
[...]
framesync AVOptions:
  eof_action        <int>        ..FV..... Action to take when encountering EOF from secondary input  (from 0 to 2) (default repeat)
     repeat                       ..FV..... Repeat the previous frame.
     endall                       ..FV..... End both streams.
     pass                         ..FV..... Pass through the main input.
  shortest          <boolean>    ..FV..... force termination when the shortest input terminates (default false)
  repeatlast        <boolean>    ..FV..... extend last frame of secondary streams beyond EOF (default true)

这个命令很慢

使用更快x264 预设

相关内容