1

我正在对 ffmpeg 做一个简单的测试。我想将它用于我正在开发的网站的缩略图生成/视频抓取。我目前正在使用 VLC 来抓取单帧然后生成缩略图,但它相当慢而且有点麻烦。

问题是我正在使用的视频(来自我自己的电脑)是由安全摄像头软件生成的,它的视频格式很奇怪。当我在 VLC 中打开它(.bvr)时,它播放得非常非常快。一个 10 秒的视频大约需要 2.5 秒。此外,使用 ffmpeg "ffmpeg -i test.bvr output.avi" 进行简单转换会生成适当长度的视频(10 秒),但视频帧永远不会改变。(这是静止图像)

测试文件和测试输出文件:

我认为这主要是由于 IP 摄像机可能只产生 5-7 fps 但安全软件不知道更好并且将其写入好像应该是 24/30 fps。

FFMpeg 报告:[m4v @ 00000000002cec60] 从比特率估计持续时间,这可能是不准确的输入 #0,m4v,来自“test.bvr”:持续时间:N/A,开始:0.000000,比特率:N/A 流 #0:0 :视频:mpeg4(简单配置文件)、yuv420p、640x480 [SAR 1:1 DAR 4:3]、5 tbr、1200k tbn、5 tbc 输出 #0、avi 到“output.avi”:元数据:ISFT
:Lavf54。 25.104 Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 5 tbn, 5 tbc 流映射:

Stream #0:0 -> #0:0 (mpeg4 -> mpeg4) 按 [q] 停止,按 [?] 寻求帮助 frame= 50 fps=0.0 q=2.0 Lsize= 244kB time=00:00:10.00 bitrate= 199.7kbits/s 视频:237kB 音频:0kB 字幕:0 全局标题:0kB 复用开销 2.877066%**

任何帮助表示赞赏!

4

1 回答 1

0

不是真正的编程问题。但无论如何,这是我的输入。产生的内容是 mpeg4 基本流。因此,vlc 无法以正确的帧速率播放它。

其次,您的视频是一个静态帧,仅具有一次照明变化,并且时间码在右下角从 21 秒增加到 32 秒。那么你是说你的输出视频没有右下角的时间码改变吗?

编辑:vlc 也无法为我播放。但是 ffplay 可以在我的最后播放它,你也可以使用 ffmpeg 在任何你想要的地方抓取缩略图。

编辑:这也适用于 vlc:

ffmpeg -i input.dvr -vcodec mpeg4 output.avi

这也适用于 vlc。一件事是你也应该给出目标比特率和分辨率。

于 2012-09-11T16:02:19.607 回答