Debian

將流保存為 mp4 文件

  • March 13, 2021

如何將流(協議 rtsp、編解碼器 h264)保存在文件(容器 mp4)中?即在輸入源源不斷的影片流(用閉路電視攝影機),並以mp4格式輸出文件大小為5-10分鐘的錄製時間。

作業系統:debian、ubuntu 軟體:vlc、ffmpeg (avconv)

目前使用此方案:

cvlc rtsp://admin:admin@10.1.1.1:554/ch1-s1 --sout=file/ts:stream.ts
ffmpeg -i stream.ts -vcodec copy -f mp4 stream.mp4

但它不能連續錄製影片(重新啟動vlc之間會失去大約10秒的實時影片)

VLC 不支持分割輸出文件。您可以嘗試直接使用 ffmpeg,因為它支持輸出分段

ffmpeg -i rtsp://admin:admin@10.1.1.1:554/ch1-s1 -c copy -map 0 -f segment -segment_time 600 -segment_format mp4 "out%03d.mp4"

由於 avconv 手冊頁沒有足夠的解釋價值,因此了解如何將音頻文件拆分為 10 分鐘的片段(即來自巨大長文件的許多短文件,例如汽車音響)可能會有所幫助。下面是一個用於拆分文件“interview.mp3”的工作 shell 命令行。使用較少的參數(地圖)在這裡不起作用。一些音頻文件需要 -map 0:0 ,觀看輸出提示。

avconv -i interview.mp3 -codec copy -map 0 -f segment -segment_format mp3 -segment_time 600 "iview%03d.mp3"

引用自:https://serverfault.com/questions/386261