問題タブ [vtt]

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 投票する
0 に答える
550 参照

live - hls.js を使用してローリング ライブ ウィンドウでライブ ストリームを再生する場合、webvtt のキャプションをどのように揃えますか?

プレイリスト master.m3u8、video.m3u8、metadata.m3u8 を使用して、hls.js プレーヤーでライブ ストリームを再生できます。ビデオは ffmpeg hls コマンドを使用して作成され、次の引数を持つローリング ライブ ウィンドウを使用しています。

-hls_list_size 20 -hls_time 2 -hls_flags delete_segments

これにより、video0.ts から video19.ts までのビデオ フラグメントが作成され、最初のフラグメントの削除が開始され、新しいフラグメントが追加されます。video.m3u8 は最終的に次のようになります...

私の metadata.m3u8 プレイリストは似ていますが、別のソースから作成しています。ビデオとメタデータのプレイリストは同期されており、ライブの開始から問題なく再生されます。

プレーヤーページをリロードすると問題が発生します。リロードすると、プレーヤーはプレイリストをロードし、現在のライブ ポイントで正しく再生されます。

video45.ts と sub_45.vtt の周りにフラグメントがロードされているのがわかります。これは、video.m3u8 のメディア シーケンスが 25 であるため、一見正しいようです。20 フラグメントのプレイリスト サイズを追加すると、ライブ位置は 45 番目のフラグメント付近になります。ライブ開始から約90秒。

ただし、プレーヤーのメディア時間は 40 秒を示しています。実際のライブ時間は 90 秒ですが、プレイリスト内のフラグメントの数を使用して 40 秒しか表示されないようです。

最終的に生じる問題は、40 秒のメディア時間がテキスト トラック キューを参照するために使用され、キャプションが 40 秒間表示されていることです.90 秒ではなく、ビデオが実際にどこから来たのかを示しています。

ライブのローリング ウィンドウにもかかわらず、プレーヤーに「リアルタイム」を正しく反映させる方法はありますか?

または、ローリング ウィンドウのライブ再生は、vtt の字幕では機能しませんか?

ローリング ウィンドウ サポートを無効にすると、ライブを何度もリロードでき、「完全な」ライブ タイムがロードされ、キャプションが正常に整列します。

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

ffmpeg - vttファイルでxywは何を意味しますか

これらの行: #xyw=0,0,160,90 はサムネイルの vtt ファイルで何を意味しますか?

ありがとう。