我发布这个评论在这个相关的线程 。 但是,他们似乎没有注意到=(
我用过了
ffmpeg -i myfile.avi -f image2 image-%05d.bmp
将myfile.avi
分割成存储为.bmp
文件的帧。 这似乎工作,但不完全。 录制我的video时,我以1000fps
的速度录制,video结果是2分2min29sec
。 如果我的math是正确的,那么整个video总共应该有149,000帧 。 但是,当我跑了
ffmpeg -i myfile.avi -f image2 image-%05d.bmp
我只获得了4472个文件。 我怎样才能得到原来的149k帧?
我也尝试通过做我的原始AVI的帧速率转换为1000fps
ffmpeg -i myfile.avi -r 1000 otherfile.avi
但是这似乎并没有解决我的问题。
ffmpeg -i myfile.avi -r 1000 -f image2 image-%07d.png
我不知道输出150k bmp文件将是一个好主意。 也许PNG是足够好的?
你的数学第一部分是好的,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“图片%06d.jpg”
我认为,这里有一个误解:HS视频系统的输出不太可能具有1000fps的输出帧速率,而是30(或50/60)fps的正常情况。 除了以这种速度超载大多数视频播放器之外,以与所记录的速度相同的速度显示序列会起反作用。 基本上:1秒@ 1000 fps的输入是33秒@ 30 fps的输出。
现场录制的时间是真正的2:29分钟(导致一个视频正常速度〜82分钟),或者正常播放时间大约是4.5秒(4472帧),这是2:29分钟?