0

私はvp8とvorbisを多重化するためにdirectshowフィルターを使用しています。そして最も重要なのは、webmファイルをリアルタイムで送信している(実際に送信しようとしている)ことです。したがって、作成されているファイルはありません。データはエンコーダーになってからwebmにパックされるので、ソケットに送信します。

filesinkerフィルターは、IStreamを使用してファイルIOを実行します。そして、シーク操作を多用します。使えない。ソケットを探すことができないので。

誰かがこのマルチプレクサを実装または使用する方法を知っているので、シーク操作は呼び出されません。または、断片化をサポートするようにキューを備えたマルチプレクサのバージョンである可能性があります。

ありがとう

www.webmproject.orgが提供するdirectshowフィルターを使用しています

4

1 に答える 1

1

IStreamオンライターの実装により、マルチプレクサーは書き込まれたストリーム/ファイルの相互参照を更新できます。したがって、それらは順番に書き込む必要はありません。これは、巨大なバッファまたは一時ファイルを作成せずに、ほとんどのコンテナ形式では不可能です。

ここで、実行時にファイルを作成してネットワーク経由で段階的に送信する場合、これを達成しようとしていると思いますが、マルチプレクサがファイルを閉じるために何を、どこで、いつ更新するのかわかりません。ファイルの先頭にあるデータを再訪し、参照、ヘッダーなどを更新するかどうか。

最初に完全なファイルを作成してから、それを配信することになっています。または、ライター全体を置き換えて、既存のデータの上書きを含むすべての書き込みをソケットに配信する必要があります。ただし、ネットワークを介してリアルタイムデータを配信するための最も適切な方法は、ファイルをまったく転送しないことです。送信者は個々のストリームを送信し、受信者はそれらをそのまま使用するか、受信後にファイルに多重化する必要があります。

于 2012-09-22T07:24:36.827 に答える