2017-01-27 41 views
2

使用avconv(或甚至ffmpeg,因此我可以用作参考),如何通过仅从其他视频获取锚/参考帧来创建延时视频?我发现的大多数信息都是关于如何通过组合图像来创建延时视频,我希望通过从视频中提取帧来实现。比如说,如果一个视频以30 FPS的速度长达30秒,我想从这900个帧中选取60个(900/60 =每15秒)来制作一个2秒的视频。创建来自其他视频的延时视频

回答

2

采取一切第15帧,使用

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

另一种方法是使用图像framestep过滤

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

得到了同时运行这些命令的不同的错误:“缺少‘)’或参数过多'mod(n''和'Option'framestep'not found“ – odigity

+0

对于第一个错误,您可能需要转义逗号,所以'n \,15'和第二个,重新检查命令字符串。使用非常旧的ffmpeg(在添加了framestep过滤器之前),它会抱怨'没有这样的过滤器“,但是你会得到一个'option'错误,这表明一个格式错误的命令。你在一个外壳或包装中使用它?什么是确切的字符串? – Mulvya

+0

我使用ffmpeg 3.0.7运行Ubuntu 16.10,并且我正在复制和粘贴两个命令行,只是改变了输入和输出文件名。 – odigity