2014-10-19 99 views
0

我们的安全系统的记录和档案我们的IP摄像机流与ffmpeg -use_wallclock_as_timestamps 1 -i rtsp://192.168.x.x:554/mpeg4 -c copy -t 60 my_input_video.aviffmpeg的丢弃帧以降低文件大小

我用crontab中运行它的每一分钟,因此为每个摄像机每分钟产生60秒(〜15兆字节)的视频。当入侵发生时,照相机发送通过FTP和称为由incrontab画面的脚本:

1-立即转发画面通过电子邮件

2-选择视频覆盖侵入发生微小,与压缩它h264(〜2,6Mb)并通过电子邮件发送

它运行得非常好,但如果小偷穿过各种相机的路径,与SMTP服务器的连接速度不够快,因此视频电子邮件被延迟。我想更多地压缩视频以避免这种情况。我可以降低分辨率(例如640x480到320x240),但有时640x480可以方便地放大看起来正在移动的东西...

所以我的想法是放弃视频中的帧以降低文件大小。我不在乎这个小偷是否像视频中的“停止运动乐高”那样走路,最重要的是我知道有人可以采取行动。

mediainfo my_input_video.avi说帧速率= 600.000 fps但它当然是错误的。 IP摄像机发送的FPS总是虚假的,因为它随网络质量而变化;这就是为什么我在我的命令中使用“-use_wallclock_as_timestamps 1”来记录流。

ffmpeg -i my_input_video.avi -vcodec h264 -preset ultrafast -crf 28 -acodec mp3 -q:a 5 -r 8 output.avi视频是确定的,但文件大小是更高(3MB)

ffmpeg -i my_input_video.avi -vcodec h264 -preset ultrafast -crf 28 -acodec mp3 -q:a 5 -r 2 output.avi文件大小是低级(2,2Mb),但没有显示视频(其被阻挡在第一帧)。

在进程中间创建一个mjpeg视频(mjpeg =非隔行帧)(首先用较少的帧导出到mjpeg,然后导出到h264)创建相同的结果。

你知道我该如何让我的小偷像“停止运动乐高”一样走路,将文件大小降到最低?

感谢您的任何帮助

+0

不知道为什么这是投下来的,看起来像一个很好的问题 – jeremy 2014-10-20 03:00:20

回答

0

您的约束文件大小明智吗?对于60秒的视频,2.6MB对我来说似乎相当合理,这大约是350kbps,这对于视频质量来说相当低。

您需要指定视频比特率-b:v 125000(125kbps,应该放大约900kb)来控制要编码的视频的比特率。你没有给予FFMpeg足够的提示,你想如何处理视频,所以它挑选你不喜欢的任意值。当你降低帧速率时,它只是使用缓冲区来为每一帧分配更多的比特。 (需要牢记的一件大事就是,当您将视频延伸到更长的时间段时,场景更有可能发生显着变化的可能性需要I帧(基于前一帧的完整编码帧vs帧),从而减少帧率会有所帮助,但可能没有你想像的那么大)。

您的“(它在第一帧被阻止)”。当您尝试开始解码流时,很可能是一个问题,因为它不在I帧而不是您的设置问题。

+0

谢谢你的帮助。更多地了解这个主题,我意识到我的想法对于MJPEG视频来说很有趣,但是由于帧是交错的,所以不是H264。 H264在所有情况下都能提供更好的尺寸/质量结果,我想我需要调整设置才能获得我想要的(〜900K/min)。我用-b:v试过,但看起来-crf效果更好。我会继续阅读有关视频编码的内容,如果我找到IP摄像机录制的优秀解决方案,请回复。再次感谢 – max 2014-10-20 12:33:30

+0

尝试使用crf与maxrate来限制比特率不超过你的目标'-crf 20 -maxrate 120k' – jeremy 2014-10-20 16:00:05

+0

我刚刚尝试了各种'-maxrate'值(非常高和非常低),但它没有改变任何东西。你确定'-crf'和'-maxrate'可以一起使用吗? – max 2014-10-21 07:29:39