Video FFMpeg生成静止视频
我正在做一个简单的ffmpeg测试。我想用它为我正在开发的网站生成缩略图/视频抓取。我目前正在使用VLC获取单个帧,然后生成一个缩略图,但它相当慢,有点麻烦 问题是,我正在使用的视频(从我自己的电脑)是由安全摄像头软件生成的,并且它有一种奇怪的视频格式。当我在VLC中打开它(.bvr)时,它播放得非常非常快。10秒的视频大约需要2.5秒。此外,使用ffmpeg“ffmpeg-i test.bvr output.avi”的简单转换可以生成适当长度的视频(10秒),但视频帧不会改变。(这是一幅静止图像) 测试文件和测试输出文件:Video FFMpeg生成静止视频,video,ffmpeg,thumbnails,ffprobe,Video,Ffmpeg,Thumbnails,Ffprobe,我正在做一个简单的ffmpeg测试。我想用它为我正在开发的网站生成缩略图/视频抓取。我目前正在使用VLC获取单个帧,然后生成一个缩略图,但它相当慢,有点麻烦 问题是,我正在使用的视频(从我自己的电脑)是由安全摄像头软件生成的,并且它有一种奇怪的视频格式。当我在VLC中打开它(.bvr)时,它播放得非常非常快。10秒的视频大约需要2.5秒。此外,使用ffmpeg“ffmpeg-i test.bvr output.avi”的简单转换可以生成适当长度的视频(10秒),但视频帧不会改变。(这是一幅静止图
:Lavf54.25.104流#0:0:Video:mpeg4(FMP4/0x34504D46), yuv420p,640x480[SAR 1:1 DAR 4:3],q=2-31200kb/s,5TBN,5TBC 流映射: 流#0:0->#0:0(mpeg4->mpeg4)按[q]停止,[?]获取帮助 帧=50 fps=0.0 q=2.0 Lsize=244kB时间=00:00:10.00比特率= 199.7kbits/s视频:237kB音频:0kB字幕:0全局标题:0kB muxing开销2.877066%**
感谢您的帮助 这不是一个真正的编程问题。但这是我的意见。生成的内容是mpeg4基本流。所以vlc不可能以正确的帧速率播放 其次,您的视频是一个静态帧,只有一次照明变化,右下角的时间代码从21秒增加到32秒。那么,您是说您的输出视频不会改变右下角的时间代码吗 编辑:vlc也不能为我播放。然而,ffplay能够在我的终端播放得很好,而且你也可以使用ffmpeg在任何你想要的地方抓取缩略图 编辑:这也适用于vlc: ffmpeg-i input.dvr-vcodec mpeg4 output.avi
这也适用于vlc。一件事是,您还应该给出目标比特率和分辨率。也许它无法确定帧率,但知道如何解码流。你有没有尝试过强制6 fps的恒定帧速率?问题是,虽然在这种情况下这是我自己的视频,但通常是客户上传他们自己的东西。我不知道帧速率应该是多少。当我打开“output.avi”文件时,计时器保持不变,视频从不改变。我有最新版本的VLC。这一点非常重要的原因是,我必须通过编程在中间抓取一帧来生成缩略图,但是用户的视频可能会有这样的各种问题。我在尝试深入研究更深层的东西(抓取帧总数等)之前问了这些问题。是的,vlc无法播放它。不过,ffplay在我这边可以播放得很好,而且你也可以使用ffmpeg在任何地方抓取缩略图。@JasonMuchow,你只需要avi吗?如果用mp4替换avi,它在vlc中也可以正常工作。我可以检查avi有什么问题,尽管明天某个时候一切似乎都不起作用。我试着转换另一个视频,以及使用你建议的vcodec mpeg4,但VLC只是停留在单个帧上。我应该注意到ffmpeg是windows编译版本。。。尽管如此,我真正想要的是,最终得到总帧数,然后除以2,然后抓取它作为缩略图。(50%通过视频)@JasonMuchow,我的ffplay可以很好地播放您生成的视频。Vlc显示第一帧。如果我把它转换成mp4,它在vlc和ffplay中都能正常播放。所以我不确定你们面临什么问题。尝试以下操作:ffprobe inputfile这将打印文件的持续时间。您可以使用一个简单的脚本简单地解析这个输出,并获得duration/2。接下来,直接在输入上尝试此命令。您还可以在ffmpeg命令的输出上执行此操作。这是双向的。ffmpeg-i-vframes 1-ss-f image2-s widthxheight out.jpg。