問題タブ [fmp4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
632 参照

ffmpeg - FMP4 moof ボックスのシーケンス番号の順序

avformat ライブラリと HTML5 ビデオと MSE を使用して、断片化された基本的な mp4ブロードキャスト プログラムを実行したいと考えていました。

これはライブ ストリームで、avformat を使用して h264 データを mp4 フラグメントにコピーします。

ストリームにアタッチするクライアントの基本的な図を次に示します。

ここに画像の説明を入力

だから、言葉で:

  1. C1J: 最初のクライアントが参加:
    • avformat プロセスの開始
    • ftyp、moov、moof、mdat ボックスが Client1 に提供されます
    • ftyp と moov アトムは両方とも、後で再利用するために保存されます
  2. C2J: 2 番目のクライアントが参加します (後で):
    • avformat プロセスは進行中です (クライアント 1 の moof および mdat ボックスをまだ提供しているため)
    • 以前に保存された ftyp および moov ボックスが最初に Client2 に提供されます
    • ftyp と moov ボックスが提供された後、Client2 は次の moof ボックスでストリームに参加します。

両方のクライアントから mp4 ファイルをディスクに保存しました。

両方のファイル内のアトムの順序は適切に見えます: ftype、moov、moof、mdat、moof、mdat...

どちらのファイルも、メディア プレーヤー (VLC など) で再生したり、ブラウザー (Opera) で直接再生したりできます。

Client1 はブラウザ (Opera) で MSE 経由でも再生できますが、Client2 のストリームは MSE (Opera) で表示されません。

JS コンソールにエラーはなく、media-internals も問題ないようです (少なくとも Client1 のものと同等です)。

ここで、すべての moof ボックスにフィールド付きの mfhd ボックス (ヘッダー) が含まれていることに気付きましたsequenceNumber

もちろん、Client1 の最初の moof ボックスでは、この sequenceNumber は1. ただし、後で参加した Client2 の最初の moof ボックスでは、この sequenceNumber は常に >= です1(私の場合は です16)。

最初から有効な fmp4 を使用するには、Client2 の moof ボックスで何を変更する必要がありますか?

SequenceNumber が 1 から始まらない場合、Opera の HTML5 ビデオは気に入らないと思いますが、それが有効であるための要件は他にもあります。

0 投票する
1 に答える
557 参照

ffmpeg - アルファチャンネルの HEVC ビデオを断片化された MP4 の HLS に変換するにはどうすればよいですか?

でビデオを変換しようとしましたffmpegx265、ファイルを HEVC にエンコードするために使用するライブラリは Alpha Channel をサポートしていません

ファイルを HEVC に変換するプロプライエタリ ツールをいくつか見つけました。これはアルファ チャネルをサポートしていますが、それらは HLS 互換フォーマットに変換しません。

AWS MediaConvert も試しましたが、アルファチャンネルが失われました。

ビデオを HEVC + アルファ チャネル + HLS + 断片化された MP4 に変換するツールはありますか?