2014-10-19 132 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