ffmpeg:将帧冻结到视频中,一次通过

ffmpeg:将帧冻结到视频中,一次通过

我的目标是抓住视频的第一帧,在这个定格帧上从黑色淡入,然后继续播放视频的其余部分。

我可以轻松抓住第一帧:

ffmpeg -ss 0.0 -i master.mov -frames:v 1 firstframe.png

给定此图像,我可以在 1 秒内将其淡入,然后与原始视频连接:

ffmpeg -loop 1 -i firstframe.png -i master.mov -filter_complex \
"[0:v] trim=duration=1, fade=t=in:st=0:d=1 [fadein]; \
[fadein][1:v]concat=n=2, format=yuv420p [output]" \
-map [output] output.mov

我的问题是,是否可以一次性完成此操作?

答案1

使用

ffmpeg -i master.mov -filter_complex \
"[0]trim=start_frame=0:end_frame=1,loop=F:1:0,setpts=N/FRAME_RATE/TB,fade=st=0:d=1[fade]; \
 [fade][0]concat,format=yuv420p" output.mov

代替F与视频的帧速率一致。

相关内容