私はフレームをFFmpegに非常に低速(1秒間に1回)配管しており、非常に短い待ち時間でそれらを流出させたいと思います。ゼロ遅延ストリーミングのためにGOPサイズを小さくする必要がありますか?
があるだけでなく、ソース、私は小さな値にGOPサイズ(keyint
)を設定する必要がありますが、ソース(のようなhereとhereが)でもあることに言及していない(例hereとhere用)が明示的に私はと言っていないは、小さな値にGOPサイズを設定する必要があります。しかし
に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でこれを行うことはできますか?
クライアントが接続するとHTTPとFFmpegが開始されるため、再結合はありません。 – AndreKR