使用FFmpegのコマンドHLSスライス、得られた長不正確なTSファイル

問題の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ビデオソースについて

映像グループ値(キーフレーム間隔)は、ライブオンラインへの影響は、それを引き起こしていますか?"

FFmpegのライブラリ:HLSのために正確に一定セグメント持続時間

发布了54 篇原创文章 · 获赞 55 · 访问量 12万+

おすすめ

転載: blog.csdn.net/u014552102/article/details/103302731