2017-02-22 7 views
0

私はWindows上でffmpeg 3.2.2を使用して5MP USBカメラからビデオをキャプチャしてストリーミングしようとしています。ここで私が使用しているコマンドラインです:ffmpegビデオストリームの再生が遅れていますか?

ffmpeg -f dshow -video_size 320x240 -framerate 30 -i video="HD USB Camera" -vcodec libx264 -preset ultrafast -tune zerolatency -g 60 -f mpegts udp://192.168.1.100:10000 

私のストリーム(同じサブネット上のUbuntuのボックス)の保存先は、経由ffplayを実行している:

ffplay -i udp://127.0.0.1:10000 

これは動作しますが、ビデオストリームはそうそれは8-10秒遅れているようです。宛先がIフレームを受信するまで宛先を表示することができないので、Iフレームが2秒(@ 30FPS)ごとに挿入されると考えて、60のGOP値を指定しようとしました。

トランスコードを実行しているWindowsマシンは、i7-3840QM @ 2.80GHzで動作し、RAMは32GBです。 FFmpegは非常に小さなCPU(2%のような)を使用しているように見えるので、CPUのようには見えません。テストのように、私はMP4ファイルを摂取しようとしましたが、トランスコード(ffmpeg -re -i localFile.mp4 -c copy -f mpegts udp://192.168.1.100:10000)はしませんでしたが、ストリームがUbuntuシステムに表示されるまでにはまだ数秒かかります。

関連するノートでは、Wowzaストリーミングエンジンサーバーの試用版も評価しています。私がfowmpegストリームをWowzaに送ると、Wowzaテストプレーヤーが再生を開始する前に同じ8-10秒の遅延がありますバック。それが価値あるものであれば、ストリームが再生を開始すると、すべてが「数秒遅れている」という事実以外は、うまく動作しているようです。

私はビデオストリーミングが新しくなっているので、ここでは何かが分かりにくいかもしれませんが、この遅延を引き起こす原因を教えてもらえますか、ありがとうございました!

答えて

2

は、この値を設定してみてください:

analyzeduration整数(入力)

入力を探査するために分析されているどのように多くのマイクロ秒を指定します。 の値を大きくすると、より正確な情報を検出できるようになりますが、 はレイテンシを増加させます。デフォルトは5,000,000マイクロ秒= 5秒です。

probesize整数(入力)サイズをバイト単位でプロービング

セット、データのサイズすなわち ストリーム情報を取得するために分析します。値が大きいほど、ストリーム内に分散されている場合にはより多くの情報を検出できますが、遅延時間は、 になります。 32以上の整数でなければなりません。デフォルトは012000000で、デフォルトは です。

FFmpeg docs

関連する問題