ffmpeg游戏中时光倒流非常慢

时间:2018-09-23 19:57:27

标签: performance ffmpeg timelapse

我正在使用

ffmpeg -i IMG_5299.MOV -c:v libx264 -crf 20 -r 60 -filter:v "setpts=0.0015*PTS" -an IMG_5299-speedup.mkv

在H.265 4K 60fps视频中创建600x间隔拍摄。我只想ffmpeg每隔600帧选择一帧,然后将其放到新的60fps视频中。没有插值,什么都没有。不过,在最近的i5-7600T CPU上,我只能获得0.2 fps,而使用

ffmpeg -i IMG_5299.MOV -c:v libx264 -crf 20 -an IMG_5299-2.mkv

给我5 fps。那么,为什么将视频加速比仅转换视频慢25倍?是对600帧中的每一帧进行漂亮的插值吗?

编辑:这是经过几分钟编码后得到的状态栏:

frame=  447 fps=0.2 q=28.0 size=   68639kB time=00:00:06.56 bitrate=85611.1kbits/s dup=0 drop=147650 speed=0.00233x

1 个答案:

答案 0 :(得分:1)

速度很慢,因为您要从每666帧中选择一个。在可以对一帧进行编码之前,必须对所有这666个帧进行解码和过滤。假设您的系统可以每秒333帧的速度解码,那么您的编码速度上限为0.5 fps。

您可以使用以下方式配置解码吞吐量

ffmpeg -i IMG_5299.MOV -an -f null -

仅通过对MOV中的关键帧数据包进行解复用,可以加快编码速度。

ffmpeg -discard nokey -i IMG_5299.MOV -c:v libx264 -crf 20 -r 60 -vf "setpts=0.0015*PTS" -an IMG_5299-speedup.mkv