我正在对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流#0:0:视频:mpeg4(FMP4 / 0x34504D46), yuv420p,640x480 [SAR 1:1 DAR 4:3],q = 2-31,200 kb / s,5 tbn,5 tbc 流映射:流#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%**
感谢任何帮助!
答案 0 :(得分:1)
不是一个编程问题。但无论如何,这是我的意见。产生的内容是mpeg4基本流。因此,vlc无法以正确的帧速率播放。
其次,您的视频是一个静态帧,仅有一个光照变化,时间码从右下角增加到21s到32s。所以你是说你的输出视频不是右下角的时间码改变了吗?
编辑:vlc也无法为我播放。然而,ffplay能够在我的结尾播放它,你也可以使用ffmpeg在任何你想要的地方抓取缩略图。编辑:这也适用于vlc:
ffmpeg -i input.dvr -vcodec mpeg4 output.avi
这也在vlc中播放。有一点是你应该给出目标比特率和分辨率。