从其他视频创建时间流逝视频

时间:2017-01-27 20:05:41

标签: ffmpeg avconv

使用avconv(甚至ffmpeg,所以我可以用作参考),如何通过仅从另一个视频中获取锚点/参考帧来创建时间推移视频?我发现的大部分信息都是关于如何通过组合图像来创建时间推移视频,我想通过从视频中提取帧来实现。比方说,如果一个视频在30 FPS时长达30秒,我想从这900帧中取出60帧(900/60 =每15秒)产生一段2秒的视频。

2 个答案:

答案 0 :(得分:16)

要取每15帧,请使用

ffmpeg -i in.mp4 -vf select='not(mod(n,15))',setpts=N/FRAME_RATE/TB out.mp4

另一种方法是使用帧步过滤器

ffmpeg -i in.mp4 -vf framestep=15,setpts=N/FRAME_RATE/TB out.mp4

答案 1 :(得分:2)

我有一个来自相机的 H264 视频,经过多次尝试后发现以下命令可以生成 16 倍快的视频,效果良好,60 FPS(选项 -r)适合 YouTube 游戏中时光倒流

ffmpeg -i video.avi -r 60 -filter:v "setpts=0.0625*PTS" -vcodec libx264 -an timelapse.avi

您可以在此处查看结果https://www.youtube.com/watch?v=azhRqKQ7kCU

由于您要求 1/15 帧,因此对于 30 FPS 结果视频,它将是 1/15 ~= 0.06667,您将需要命令

ffmpeg -i video.avi -r 30 -filter:v "setpts=0.06667*PTS" -vcodec libx264 -an timelapse.avi