1

私はビデオ ストリーミングとトランスコーディングについて少し独学しようとしていますが、Roku アプリの開発も手伝っています。クライアントにストリーミングしたい多くのビデオファイル (ほとんどが FLV 形式 (H.264/AAC)) があります。この場合、Roku ボックス (MP4 (H.264/AAC) を受け入れHTTP ライブ ストリーミング (HLS))。FLV ファイルをトランスコード/再多重化して、おそらく HLS 経由でその場でクライアントにストリーミングできるかどうか疑問に思っています。

ffmpeg を使用してファイルを再多重化し、トランスコーディング プロセス中にすぐに提供しようとしましたが、書き込みプロセスが完了するまで再生できません。Roku で完成した MP4 ファイルを Apache/Rails 経由で問題なく再生できます。

しかし、私は疑問に思っています...ファイルをトランスコード/リマックスするようにサーバーをセットアップし、すぐに出力ファイル(ffmpeg/使用しているツールから)をクライアントにストリーミングすることは可能ですか? もしそうなら、これを達成するためにどのようなツールが必要ですか? メディア ファイル セグメンターを使用して、トランスコードまたは再多重化されているファイルを分割することはできますか?

トランスコーディング プロセスが CPU を大量に消費することは十分承知していますが、トランスコーディングとオンザフライ ストリーミングの実用性についてはあまり心配していません。これを処理します)。

ここでベースから外れていたら申し訳ありません。これをハックしようとしているだけです。

ありがとう!

4

1 に答える 1

1

TS セグメントが完了した直後に HLS を提供する秘訣は、データがディスクに到着したときにプレイリストを動的に更新することです。

あなたがやろうとしているのは、本質的に HLS 経由でライブ イベントをストリーミングすることです。これは絶対に実行できます。ツール間の調整が必要です。

オープンソースのセグメンターはこれを行うことができます。トリックは、ffmpeg に単一の MPEG-TS ストリーム (セグメント化されていない) を書き出させ、これを名前付きパイプ (または OS の同等のもの) に書き込んでから、セグメンターにこの名前付きパイプから読み取らせ、共有 Web スペース内のディレクトリにファイルを書き込みます。

セグメンターは、処理中にディスク上の M3U8 ファイルを繰り返し更新するため、タスクが完了するまで「ライブ」ストリームとして使用できます。

ffmpeg が出力を閉じると、セグメンターは M3U8 に終了タグを配置し、ファイルは「VOD」になります。

セグメンタはここからダウンロードできます

于 2012-10-28T10:25:50.273 に答える