2017-05-03 16 views
0

Wiresharkを使用して.pcapファイルへのビデオコールを保存しました.RTPパケットからビデオを取得します。 RTPパケットのペイロードタイプがvp8の場合、C++でlibpcapライブラリを使用してvp8 RTPパケットを調べることができました。次に、すべてのRTP vp8パケットの内容をファイルに保存しました。しかし、私はffmpegを使って、この生のvp8データを.mp4に変換することはできません。 ffmpegは変換中にエラーを返します。 ffmpegの変換エラー:入力を処理RTP vp8ペイロードパケットを.webmファイルに保存する

無効なデータVP8のRTPパケットから.MP4または.webmビデオファイルを取得するための手順を教えてください。

編集:VP8ペイロード記述子、ペイロードヘッダー、およびキーフレームヘッダーを除いた、生のVP8データを取得できました。それから私はIVFの文書によると、各VP8生フレームのIVFヘッダとフレームヘッダを追加 IVF Document

しかし、私はffmpegの

のffmpeg -iを使用してoutput1.mp4に私のIVFファイル(OUTPUT1)を変換したい場合にはOUTPUT1 -c:V VP8のoutput1.mp4

私はエラーが

+0

"次に、すべてのRTP vp8パケットの内容をファイルに保存しました。" - パケット境界を維持しましたか?私。それはちょうどバイナリ連結ガーベジですか、または各パケットはまだ有効なタイムスタンプなどを持つ個々のVP8フレームですか? –

+0

VP8を含むすべてのRTPパケットを取得します。次に、これらのパケットからRTPヘッダーを抽出し、RTPペイロードデータを保存しました。保存したデータは、連結されたRTPペイロードのみです。おそらく、最初に各フレームの境界を見つけなければならず、その後、vp8形式で再生できるように各フレームのヘッダーを追加する必要があります。 SビットとパーツIDを使用してvp8ペイロードヘッダーを抽出できました。私は各フレームの境界を正しく見つけることができたと思います。 – Ibrahim

答えて

1

JanusGateway

convertion error RTPを変換する機能を持っている取得(VP8/VP9/H264 /オーパス) 〜(webm/mp4)。これは対応するコンテナ(webm/mp4/opus)にRTPをエンコードするだけで、トランスコーダは含まれません。

ffmpegを使用して、他の形式にトランスコードすることができます。

簡潔に言えば、janusは、各パケットにプレフィックスヘッダーを追加することで、ファイル内のRTPパケットをstoreにします。その後、ポストプロセッサを使ってvp8 RTPパケットをwebmに変換することができます。

https://github.com/meetecho/janus-gateway/blob/master/postprocessing/pp-webm.c

あなたはdemo & Documentationライブを見ることができます。

+0

.VP8ペイロード記述子、ヘッダー、およびキーフレームヘッダーを除いた、生のVP8データを取得できました。次に、ivfドキュメントに従って、vp8 rawフレームごとにivfヘッダーとフレームヘッダーを追加しました。 https://wiki.multimedia.cx/index.php/IVF しかし、私は-i OUTPUT1 -c ffmpegの のffmpegを使用してoutput1.mp4に私のIVFファイル(OUTPUT1)を変換したい:V VP8 OUTPUT1。 mp4 エラーが発生する 無効な同期コード48c11d。ストリーム0のコーデックvp8のタグが見つかりませんでした。現在、コンテナでサポートされていないコーデック 出力ファイル#0のヘッダーを書き込めませんでした(不正なコーデックパラメータ – Ibrahim

+0

各vp8に追加する必要があるプレフィックスヘッダーの詳細については、フレーム? – Ibrahim

+0

wireshark pcapからRTP(VP8パケット)をwebmに変換できますか?JanusGatwayはIVFヘッダを使用していますか? –

関連する問題