それで...
Media クラス (ライブ ストリーミングではなく、ビデオ オン デマンド) を使用してビデオを再生するために、組み込みの HTTP ライブ ストリーミング サーバーを実行する Java FX アプリケーションがあります。ビデオの再生は、RTP パケットのコレクションを実際に格納している複数のファイルで構成されます。ファイル (.m3u8 インデックス ファイル内のエントリ) の取得要求を処理するために HttpHandler が呼び出されるとき、私は次のことを計画しています...
- ファイルをメモリにロードする
- RAW H264 パケットのバイト配列の作成
- RAW H264をMPEG-2 TSに変換(ラップ?)します(ffmpeg -i video.h264 video.ts)
- 再生できるように、MPEG-2 TS コンテンツをレスポンス ボディに書き込みます。
...私の要件の 1 つは、一時ファイルであっても、ローカル ファイルを作成できないことです。そのため、.h264 ファイルを作成できず、ffmpeg を使用して .ts ファイルを作成し、ts ファイルを読み取ってから、内容を応答本文に書き込みます。
私が知る限り、Xuggler はストリームでは動作せず、JCodec は遅いです。MPEG-2 TS フォーマットを掘り下げて理解し、RAW H264 を適切なフォーマットに単純に変換できるとかなり確信していますが、これは以前に行われるべきであった多くの不必要な作業のように思えます。
RAW H264 を MPEG-2 TS に変換する簡単な方法を知っている人はいますか? それともMP4からMPEG-2 TSへ?MP4Parser を使用してメモリ内に MP4 データをすばやく作成できます。必要なのは、MPEG-2 TS データを生成できる Java ライブラリだけです。ありがとう!