web-dev-qa-db-ja.com

Webベースのチャット/ビデオ会議アプリケーション用のHTML5 WebSocketサーバーでのメディアストリームのチョッピング

現在、チャット+(ファイル共有+)ビデオ会議アプリケーション HTML5 Webソケットを使用 に取り組んでいます。アプリケーションにアクセスしやすくするために、次のシーケンスを使用して、アダプティブストリーミングを実装します。

  1. 生のオーディオ/ビデオデータクライアントがサーバーに送信
  2. ストリームは1秒のチャンクに分割されます
  3. ストリームをさまざまな帯域幅にエンコードする
  4. クライアントは利用可能なセグメントを記述したマニフェストファイルを受け取ります
  5. 通常のHTTPを使用して1つのセグメントをダウンロードします
  6. 前のセグメントのパフォーマンスに基づいて選択された次の帯域幅セグメント
  7. クライアントは、さまざまなデータレートでさまざまな代替ストリームから選択できます。

それでは、Pythonでオーディオ/ビデオデータをチャンクに分割するにはどうすればよいですか?

Microsoftは既に Expression Encoder 2 を構築していて、アダプティブストリーミングを有効にしていますが、Silverlightのみをサポートしているので、それは望んでいません。

編集:
FFmpeg(およびPython PyFFmpegラッパー用)と呼ばれるソリューションもありますが、Appleアダプティブストリーミングのみをサポートします。

25
Wouter Dorgelo

ffmpeg はあなたが見てみたい主なツールだと思います。最もよくサポートされているオープンソースメディアマニピュレーターになります。 python wrapper があります。 サブプロセスモジュールからコマンドラインにアクセスする も可能です。

5
mjhm

他の人が他のプラットフォーム用にstream segmenterを作成する方法について、いくつかの素晴らしい articles を見つけたので、Pythonでそれを作成する方法を理解しました。

2
Wouter Dorgelo