2017-12-14 31 views
2

私は、オーディオとビデオをキャプチャするためにMediaRecorder APIを取得するいくつかのコードを構築し、ondataavailable関数を使用して対応するwebmファイルblobをWebソケット経由でサーバーに送信しました。次に、サーバーは、Media Source Extension APIを使用してビデオをバッファにまとめるWebソケットを介して、これらのBLOBをクライアントに送信します。スタンドアロンビデオとしてwebmチャンクを再生する

これはうまくいきますが、途中でストリームを開始したい場合は、それだけで最新のblobを送信することはできません。また、ブロブを順不同で送信すると、ブラウザは通常、オーディオエンコーディングが一致しないと不平を言う。

ビデオコンテナ、コーデックなどについては、私がこれを取り除くべきであるとは本当に分かりませんが、私の質問はスタンドアロンビデオとしてどのように再生できますか?どうにかして最初のblob(自分自身で再生可能)にある情報を他のblobに追加するためにコードを使用することはできますか?途中でストリームを再生するための良いアプローチは何でしょうか?私はトランスコードしますが、ストリーミングをリアルタイムで(または近くに)設定したいので、時間がかかるようです。

ありがとうございます!

答えて

1

MSEを使用すると、WebMセグメントを含む最初のチャンクをトラック情報とそれ以外のものでロードし、後でクラスタのロードを開始できます。ブラウザはそれを把握します。

WebMクラスタは、タイムスタンプで始まります。タイムスタンプは、この機能を有効にします。

+0

私はChrome上で動作しますが、FireFoxでは動作しません。他の方向に進み、メディアサーバーとしてKurentoをセットアップし、MSRを手にするよりはるかに簡単だったWebRTCを使用する – Antoine

+0

MSEはchuncked webmを再生する唯一の方法ですか?私たちはオーディオ/ MPEG httpをチャンクしたようにすることはできませんか? (これは単純なhttpでうまくいく) –

+0

@KeyneVianaはい、あなたはサーバーからまっすぐに再生することもできます。質問は、MediaRecorderからのデータに関するものです。 – Brad

関連する問題