Ffmpegとffserverでビデオストリームを作成しようとしています。ローカルのffmpegだけを見ると、これらのエンコーダーはかなりまともな速度を提供するので、flvまたはmpeg1videoエンコーダーを使用したいと思います。
しかし、ffserverでそれらのいずれかを試してみると、「rc buffer underflow」エラー(ビットレートが小さい場合)または「HTTPエラー503 Server toobusy」(最初のエラーを回避するためにビットレートを上げる場合)のいずれかが発生します。
Ffserverにデータを渡してそれらのエラーを回避できる魔法のオプションはありますか?
私の現在の設定:
<Stream live.ts>
Feed feed1.ffm
Format mpegts
NoAudio
VideoCodec flv
VideoSize 600x600
VideoFrameRate 30
VideoBufferSize 5
AVOptionVideo flags +global_header
AVOptionVideo qmin 2
AVOptionVideo qmax 56
PreRoll 5
StartSendOnKey
VideoBitRate 1000
</Stream>
帯域幅を超えると、FFServerは503 Server too busy
を返します。 http:// localhost:8090/stat.html で帯域幅の使用状況を確認できます(サーバーがローカルホスト上にあると想定)。
帯域幅を増やしたい場合は、ストリームとフィードの前に、構成ファイルの先頭にあるMaxBandwidth
設定を変更するだけです。
例えば
MaxBandwidth 10000
10 Mb/sの帯域幅を設定します。これは、ストリームには十分すぎるはずです。