web-dev-qa-db-ja.com

生のRTSPストリームをファイルにダンプする方法は?

生のRTSPストリームをファイルにダンプし、後でファイルを再生可能なものにデコードすることは可能ですか?

現在、私はFFmpegを使用してストリームを受信およびデコードし、mp4ファイルに保存しています。これは完全に機能しますが、CPUを集中的に使用し、サーバーで同時に受信できるRTSPストリームの数を大幅に制限します。

ストリームをデコードせずにファイルに保存し、ファイルを開く必要があるときまでデコード部分を遅らせたいと思います。

これは可能ですか?

FFmpegよりもCPUを集中的に使用するVLCを試しました。また、 この質問 ファイルにRTSPをダンプするのは役に立たないと答える この質問 を見てきました。保存や再生にはあまり適していません...」。これは方法があることを示しているようです。

前もって感謝します!


[〜#〜] edit [〜#〜]FFmpegに使用しているコマンドは次のとおりです。

ffmpeg -i rtsp://@192.168.241.1:62159 -r 15 C:/DB_Videos/2013-04-30 17_18_34.703.mp4

41
Felix

Ffmpegコマンドラインで再エンコードする場合、CPUを集中的に使用する理由になる可能性があります。ストリームを単一のコンテナにコピーするだけです。コマンドラインがないため、ここで具体的な改善を提案することはできません。あなたのacodecとvcodecは、コピーできるように設定する必要があります。

編集:あなたのコマンドラインを見て、あなたがすでにそれを試したことを考えると、これは同じ質問に出くわした他の人の利益のためです。コマンド:

ffmpeg -i rtsp://@192.168.241.1:62156 -acodec copy -vcodec copy c:/abc.mp4

トランスコーディングを行わず、mp4でファイルをダンプしません。もちろん、これは、ストリーミングされたコンテンツがmp4と互換性があることを前提としています(これはおそらくすべてそうです)。

55
av501

このコマンドを使用すると、画質が低下しました

ffmpeg -i rtsp://192.168.XXX.XXX:554/live.sdp -vcodec copy -acodec copy -f mp4 -y MyVideoFFmpeg.mp4

これにより、ほぼ遅延なく、良好な画質が得られました。

ffmpeg -i rtsp://192.168.XXX.XXX:554/live.sdp -b 900k -vcodec copy -r 60 -y MyVdeoFFmpeg.avi
9
Ricardo

Mplayerを使用できます。

mencoder -nocache -rtsp-stream-over-tcp rtsp://192.168.XXX.XXX/test.sdp -oac copy -ovc copy -o test.avi

「コピー」コーデックは、ストリームの単なるコピーです。 Mencoderは、ヘッダーと必要なものを追加します。

Mplayerのソースファイル「stream/stream_rtsp.c」には、640kのprebuffer_size設定があり、サイズを変更してから再コンパイルするオプションはありません。その結果、ストリームの書き込みが常に遅れることになります。これはカメラのようなものにとっては面倒なことですが、これに加えて、出力ファイルを取得し、ほとんどの場所で問題なく再生できます。

6
Tel