4

私の楽しいプロジェクトでは、YouTube からビデオ ファイルをダウンロードし、ローカル ディスク上のファイルに書き込みます。同時に遊びたい。目的は、ファイルをローカル ディスクにキャッシュすることです。これにより、ビデオをもう一度見たいときに、アプリがローカルで再生できるようになり、帯域幅を節約できます。

LibVLCを使用しPython 3.3.1ています。これまでのところ、次のことができます。PyQt4/Phonon

  • YouTube の視聴URL を指定すると、ビデオ ファイルをダウンロードして、PyQt4/Phonon と LibVLC の両方を個別に使用して再生できます。ストリーミングではありません。

  • LibVLC はストリーミングをサポートしているため、指定された URL をストリーミングで再生できます。

2 番目は、私がやりたいことに非常に近いですが、ファイルをディスクに保存しないため、次回は同じビデオをローカルで再生できません。

ここから先に進む方法について、いくつかのガイドラインを探しています。特に、まだ書き込み中の不完全なファイルからビデオを再生する方法。

次のような API である限り、(仕事をする) どんな API でもまったく問題ありません。

  • Python 3.3.1 (できれば)
  • C++.

また、現在のアプローチが正しくない場合や、問題を実際よりも難しくしている場合は、別のアプローチも探しています。

4

1 に答える 1

1

VLC は不完全なファイルの再生をサポートしているため、ノンブロッキング I/O や並列コードが少し必要な場合は、ダウンロードを開始でき、十分な量が書き込まれた後、LibVLC を使用して開始できます。再生。使用する圧縮アルゴリズムによっては、バッファに常に数秒のデータが残るように、十分なバッファリングが必要になる場合があります。私の記憶が正しければ、最新のアルゴリズムのいくつかは、デルタとインデックス情報を前後に記録します。

いくつかの警告/エラー メッセージ/例外が表示される場合がありますが、それらが致命的であるとは考えていません。再生品質を参考にしてください。

これは、上記のコメントからの提案のいくつかにいくぶん似ており、@abarnert が言ったことの多くにも関連しています。

于 2013-05-14T09:16:55.483 に答える