ffmpeg将avi分成具有已知帧速率的帧

我发布这个评论在这个相关的线程 。 但是,他们似乎没有注意到=(

我用过了

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 

但是这似乎并没有解决我的问题。

Solutions Collecting From Web of "ffmpeg将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分钟?