我正在使用
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
答案 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