2017-06-10 13 views
0

私はフレームをFFmpegに非常に低速(1秒間に1回)配管しており、非常に短い待ち時間でそれらを流出させたいと思います。ゼロ遅延ストリーミングのためにGOPサイズを小さくする必要がありますか?

があるだけでなく、ソース、私は小さな値にGOPサイズ(keyint)を設定する必要がありますが、ソース(のようなherehereが)でもあることに言及していない(例herehere用)が明示的に私はと言っていないは、小さな値にGOPサイズを設定する必要があります。しかし

、これまでのところ唯一の方法は、私は本当に長い開始遅延を減少させることがわかっ実際にとにかく1

にGOPサイズを小さくすることで、ここに私の現在のコマンドラインです:

ffmpeg -f image2pipe 
     -probesize 32 
     -i - 
     -c:v libx264 
     -preset veryfast 
     -crf 23 
     -vsync 2 
     -movflags "frag_keyframe+empty_moov" 
     -profile baseline 
     -x264-params "intra-refresh=1" 
     -tune zerolatency 
     -f mp4 
     - 

(私はまた、-x264-paramsから:bframes=0:force-ctr:no-mbtree:sync-lookahead=0:sliced-threads:rc-lookahead=0を(行うことになっているもの-tune zerolatency)これらの値のいくつかは、デバッグ出力に表示されていなかったので追加しようとしたが、予想通り、それは効果がありませんでした。)

あなたがここに見ることができるように、私たちはアールeady 182フレーム(= 3分の壁時計)をストリームに送りますが、まだ何も出力していません(最初からサイズは1kBでした)。

frame= 182 fps=1.0 q=20.0 size=  1kB time=00:00:07.24 bitrate= 0.8kbits/s speed=0.0402x 

This実際のtime-to-最初のピクチャについて語ったが、それはそれは大したことではありませんように、それは思われてしまいます。 ;)それは私にとっては、最初のGOPを1フレーム長くしなければならないかもしれないし、長いGOPに切り替えることができますか? FFmpegでこれを行うことはできますか?

答えて

0

-force_key_frames expr:eq(n,1)を追加すると、2番目のフレームに強制的にKFが適用されます。

あなたのレートは1fpsですから、lt(n,5)のexprをお勧めします。また、デフォルトのキーインは250で、最小キーイングは40です。ストリームから離脱して再結合する場合は、再起動するまでに非常に時間がかかることがあります。 keyintを減らすことを検討してください。

+0

クライアントが接続するとHTTPとFFmpegが開始されるため、再結合はありません。 – AndreKR

関連する問題