2013-05-20 129 views
16

私は問題があります。 私はウェブカメラからffmpegでライブストリーミングをしたいと思います。ffmpegでライブストリーミングの遅延を最小限に抑える方法

  1. 私はffserverを起動して動作します。私は、このコマンド でストリーミングするためにffmpegのを起動し、それが動作する別の端末から
  2. :私の設定ファイルで

    sudo ffmpeg -re -f video4linux2 -i /dev/video0 -fflags nobuffer -an http://localhost:8090/feed1.ffm 
    
  3. 私はこのストリームがあります

    <Stream test.webm> 
    Feed feed1.ffm 
    Format webm 
    NoAudio 
    VideoCodec libvpx 
    VideoSize 720x576 
    VideoFrameRate 25 
    # Video settings 
        VideoCodec libvpx 
        VideoSize 720x576   # Video resolution 
        VideoFrameRate 25   # Video FPS 
        AVOptionVideo flags +global_header # Parameters passed to encoder 
                # (same as ffmpeg command-line parameters) 
        AVOptionVideo cpu-used 0 
        AVOptionVideo qmin 10 
        AVOptionVideo qmax 42 
        #AVOptionVideo quality good 
        PreRoll 5 
        StartSendOnKey 
        VideoBitRate 400   # Video bitrate 
    </Stream> 
    
  4. を私はストリームを起動します

    ffplay http:// 192.168.1.2:8090/test.webm それは動作しますが、私は4秒の遅延があり、私のアプリケーションには不可欠なので、この遅延を最小限に抑えることになります。 ありがとう

+2

あなたはprobesizeの値を小さくしようとすることができます:500000 HTTPを-probesize ffplay '://192.168.1.2:8090/test.webm' SDLを使用して も、最小限の待ち時間でフレームを表示すると言われています(500Kbまで、この値で試してみて、私が間違っていなければデフォルト値は5Mbです。) – pogorskiy

+0

大丈夫です。今私はモバイルブラウザでストリームを見なければならないので、私はffplayを使うことができません。私は設定ファイルを最適化するための提案が必要です。 –

+2

http://ffmpeg.org/sample.html http://fmpeg.org/sample.htmlを読んでください。VideoBufferSizeを試したり、GOPを減らして(帯域幅の使用量を増やしたりできる) –

答えて

13

FFMpegのストリーミングガイドには、遅延を軽減する方法に関する特定のセクションがあります。私はまだ彼らの提案をすべて試していない。 http://ffmpeg.org/trac/ffmpeg/wiki/StreamingGuide#Latency

彼らは、待ち時間ffplayについて特に注意を作るには導入されています。デフォルトでは

ffplayは便利。また、独自の小さな遅延を導入し、試験の待ち時間(または-benchmark)のためにその-nocachemplayerです。 ffmpeg ... -f sdl -

+4

リンクから「ffplay -probesize 32 -sync ext INPUT」と言ってくれてありがとう! – user3473830

+0

あなたはどのようなレイテンシを達成しましたか?私は100ミリ秒以上のストリーミングレイテンシが必要です。出来ますか ? –

+0

私は最終的な遅延を測定しませんでしたが、それはサウンドブースを通過していたサウンドを使ってモニターに人が近づいているように見えました。 –

関連する問題