为什么 -ss 需要这么长时间?

为什么 -ss 需要这么长时间?

我有下面的代码,我注意到当有-ss参数编译时间更长,这是预料之中的吗?有办法解决这个问题吗?

-i "bg.png" 
-i "media.mp4" 
-i "assets.png" 
-ss 0:00:01.189000 
-filter_complex "
    [1:v]scale=720.0:-2[mainMedia];
    [0:v][mainMedia]overlay=x=(W-w)/2:y=(H-h)/2[mix1];
    [2:v]scale=720.0:-2[widgets];
    [mix1][widgets]overlay[outfile]
    " 
-framerate 30 
-b:v 1.0k 
-frames:v 1 
-s 576x1024 
-crf 21 
-preset medium 
-map [outfile]

答案1

这是预料之中的吗?

是的。-ss使用after -i(输出寻找)时

[I]nput 将被解码(并丢弃),直到它到达 给出的位置 -ss。这将完成 非常缓慢地, 一帧一帧。

有没有什么办法可以解决这个问题?

也许吧,但你可能不想。上面的 FFmpeg Trac 条目的其余部分继续说:

从 FFmpeg 2.1 开始,[输出寻求] 的主要优点是,当将过滤器应用于输出流时,时间戳不会在过滤之前重置(即,当将字幕刻录到视频中时,您不需要修改字幕时间戳)[。]

如果这不是一个问题,您可以尝试输入搜索(放在-ss命令的最开始,任何相关-i选项之前),这应该更快。

相关内容