FLV プレーヤーにストリーミングする際の問題を修正する ffmpeg のパッチについて聞いたことがあります。
rtmpproto.cの 2314 行あたりに次の式があります。
if (rt->flv_header_bytes < 11)
break;
修正は、この追加要件を含めるように変更することです。
if (rt->flv_header_bytes < 11 && !rt->flv_off)
break;
しかし、私はこの声明の論理に興味があります。最初のステートメントは、FLV ヘッダーが 11 バイト未満かどうかを確認しますが、ヘッダーのサイズを確認する前に、最初に flv ストリームがオンになっているかどうかを確認する方が効率的ではないでしょうか?
if (!rt->flv_off && rt->flv_header_bytes < 11)
break;
あるいは、ステートメントをそのように変更するのはどうですか?
if (rt->flv_off || (!rt->flv_off && rt->flv_header_bytes < 11)
break;
それはより効率的でしょうか、それとも何らかの形でコードを壊す可能性がありますか?