web-dev-qa-db-ja.com

継続的なRTSPストリームを5〜10分の長いmp4ファイルに保存します

フロー(プロトコルrtsp、コーデックh264)をファイル(コンテナmp4)に保持するにはどうすればよいですか?つまり、(CCTVカメラを使用して)エンドレスストリームを入力すると、5〜10分の記録時間のmp4形式のサイズで出力ファイルが生成されます。

OS:debian、ubuntuソフトウェア:vlc、ffmpeg(avconv)

現在、このスキームが使用されています:

cvlc rtsp://admin:[email protected]:554/ch1-s1 --sout=file/ts:stream.ts
ffmpeg -i stream.ts -vcodec copy -f mp4 stream.mp4

ただし、ビデオを連続して記録することはできません(再起動の間、vlcは約10秒のライブビデオを失います)。

17
Ruslan Sharipov

この質問 を参照し、サーバー障害について回答してください。つまり、ツールを切り替えます。 avconvはあなたがやりたいことをします。 (ffmpegはavconvになりました。)

探している機能はセグメンテーションと呼ばれます。コマンドラインは次のようになります。

avconv -i rtsp://10.2.2.19/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4"

24

Alexander Gardenソリューションは、以下のバージョンを使用してffmpepで動作します。 avconvffmpegに置き換えます。

./ffmpeg -i rtsp://10.2.2.19/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4"

バージョンに関するFFmpegの混乱、ubuntu分裂、および迅速な開発のため、このヘッダーを含めています。

ffmpegバージョンN-80023-Gd55568d Copyright(c)2000-2016 gcc 4.8(Ubuntu 4.8.4-2ubuntu1〜14.04.1)構成でビルドされたFFmpeg開発者:--prefix =/home/rhinchley/q10/ffmpeg_build --pkg -config-flags =-static --extra-cflags = -I/home/rhinchley/q10/ffmpeg_build/include --extra-ldflags = -L/home/rhinchley/q10/ffmpeg_build/lib --bindir =/home/rhinchley/q10/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis- enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree libavutil 55. 24.100/55. 24.100 libavcodec 57. 42.100/57. 42.100 libavformat 57. 36.100/57. 36.100 libavdevice 57. 0.101/57. 0.101 libavfilter 6. 45.100/6. 45.100 libswscale 4. 1.100/4. 1.100 libswresample 2. 0.101/2. 0.101 libpostproc 54. 0.100/54. 0.100

9
Ron Hinchley

チームワーク:ビデオソースを分割し、2つのプロセスで時間フレームを交互に記録します。起動時間がどれほど変動するか、またどれだけ変動するかをテストする必要があります。プロセスの優先順位をリアルタイムに設定して、開始時間の変動を減らすことができます。いくつかのオーバーラップがありますが、それは私が推測することからあなたのアプリケーションにとっては大丈夫かもしれないように聞こえます。例:

p1: sRRRRRRRRRwwwwwwwwsRRRRRRRRRwwwwwwwwsRRRRRRRRR...
p2: wwwwwwwwwsRRRRRRRRRwwwwwwwwsRRRRRRRRRwwwwwwwww...

                    time -->

s: startup
R: running
w: wait
0
Stu Thompson