問題のI.概要:
次のコマンドを使用すると、FFmpegのスライスされたHLS
ffmpeg -i video2.mp4 -hls_time 1 -f hls out.m3u8
TSの長いファイルを生成することが期待されるパラメータの使用「-hls_time 1」には、約1秒になります。しかし、その結果は以下のように最終的に生成されたTSファイルは、1秒よりもはるかに長いです。
二、原因:
現象の原因がある:TSはに関連するビデオ親切GOP(2つのIフレーム間隔)のファイルサイズを切断指定一つの第二のカットが一秒のカットは、TSファイルを確保することができるファイルTSはありません。実際にtsの時間が含まれていること、ファイルがGOPの整数倍であるので、再生するために完全なGOPの最後に取得できるようにするプレイヤー内の任意のストリーム。
第三に、解決策:
それは限り、我々はそれにFFmpegのコマンドでIフレーム間隔を設定すると、より簡単になります問題の原因を知っています。私たちは、次のコマンドを変更するには、コマンドをスライスします。
ffmpeg -i video2.mp4 -force_key_frames "expr:gte(t,n_forced*1)" -strict -2 -c:a aac -c:v libx264 -hls_time 1 -f hls out.m3u8
前記パラメータが「exprのを:(* 1 n_forced T、)GTE」は-force_key_frames毎秒必須つのキーフレームを示し
-strict -2パラメータオーディオコーディング、AACを使用します
以下に示すように、1秒の文書にM3U8 TSは、長さを有する場合にコマンドを実行した後、我々は、生成されたファイルで発生することを確認することができ
第四に、参考記事リンク:
" FFmpegの転送パッケージ(4)。"
「GOP HLSスライスと関連RTMPビデオソースについて」