我在this related thread下发布了此评论。然而,他们似乎没有引起注意=(
我用过
ffmpeg -i myfile.avi -f image2 image-%05d.bmp
将myfile.avi
拆分为存储为.bmp
个文件的帧。它似乎工作除了不完全。录制我的视频时,我的录制速度为1000fps
,视频结果为2min29sec
长。如果我的数学运算正确,那么整个视频的总数应该达到 149,000帧。但是,当我跑了
ffmpeg -i myfile.avi -f image2 image-%05d.bmp
我只获得了4472个文件。如何获得原始的149k帧?
我还尝试通过
将原始AVI的帧速率转换为1000fpsffmpeg -i myfile.avi -r 1000 otherfile.avi
但这似乎并没有解决我的问题。
答案 0 :(得分:36)
ffmpeg -i myfile.avi -r 1000 -f image2 image-%07d.png
我不确定输出150k bmp文件是个好主意。也许png足够好了?
答案 1 :(得分:11)
你的数学的第一部分是好的,2分29秒约为149秒。 1000 fps,可生成149000帧。但是,您的输出文件名只有5个位置,其中149000有6个位置,所以请尝试“image-%06d.bmp”。
然后是磁盘大小:您的图像是否适合磁盘?使用bmp,每个图像都使用自己的大小。您可能会尝试使用jpeg图片,它们会压缩大约10倍。
另一个想法:如果ffmpeg找不到(合理的)帧速率,它会降低到每秒25或30帧。您可能需要指定它。对源和目标都这样做,请参见手册页(unix上的man ffmpeg
):
To force the frame rate of the input file (valid for raw formats
only) to 1 fps and the frame rate of the output file to 24 fps:
ffmpeg -r 1 -i input.m2v -r 24 output.avi
对于它的价值:我使用ffmpeg -y -i "video.mpg" -sameq "video.%04d.jpg"
将我的视频分割为图片。 -sameq是以合理的质量强制jpeg,-y是为了避免允许覆盖问题。对你:
ffmpeg -y -r 1000 -i“myfile.avi”-sameq“image。%06d.jpg”
答案 2 :(得分:0)
我认为,这里存在一个误解:HS视频系统的输出不太可能具有1000 fps的输出帧速率,而是30(或50/60)fps的正常情况。除了以这种速度超载大多数视频播放器之外,以与录制的速度相同的速度显示序列将适得其反。 基本上:1秒@ 1000 fps输入就像33秒@ 30 fps输出。
场景的持续时间是否真的是2:29分钟(以正常速率拍摄视频~82分钟)或拍摄约4.5秒(4472帧),这是正常播放时间的2:29分钟?
答案 3 :(得分:0)
我在ubuntu 18.04终端上尝试了此操作。
ffmpeg -i input_video.avi output_frame_path_images%5d.png
哪里
-i =输入