2013-05-04 640 views
7

VLCを使用してデスクトップを(LAN経由で)ストリーミングし、可能な限り最小限の待ち時間(< 100ms)を達成する方法を解明しようとしています。 目標は、ストリーミング中に別のコンピュータにストリームを受信させ、ゲームをプレイすることです(テレビの横にあるPCのPC1からゲームをプレイするなど)。最低遅延でVLCを使用してRTPでデスクトップをストリームする

どのような設定を使用しますか?私は複数のアプローチを試みましたが、まだ成功していません。

編集:私はVLC以外のものも使用しています。

答えて

8

私はVLCでも同じことを試みましたが、3秒間の待ち時間を得ることはできませんでした。 FFmpegは不思議に思って、最終的に待ち時間1秒を与えました。

mpeg2videoとUPDが最良の結果をもたらし、RTPレイテンシは少し悪化しましたが、非常に近いと感じました。 x264に移行すると、レイテンシが少し増えるのと引き換えに品質が向上しますが、それは実際にどれくらいの動的コンテンツが存在し、どのくらいの速さであるかに大きく依存します。私はUDPで動作するx264しか持っていませんが、RTPでそれを行う方法が必要です。

私はそれが再生可能かどうかはわかりません。サーバーは大量の作業負荷を受け、待ち時間が顕著になります。少なくともLinuxではウィンドウについて知りません。 Linuxの

は、次のいずれかのコマンドを試してみてください。

$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec mpeg2video -b:v 8000 -f rtp rtp://192.168.0.10:1234 

または

$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 18 -f mpegts udp://192.168.0.10:1234 

画面解像度(-s <your resolution>)、リフレッシュレート(-r <fps>)、帯域幅(-b:v <bits/s>)、品質(-crf 18のための調整しますまたは-qp 18、低い方が良い)、およびtarget ip:portです。

Windowsを実行している場合はx11grabの代わりにdshowを使用してください。

ffplay udp://192.168.0.10:1234またはffplay sdp://192.168.0.10:1234を使用してご覧ください。

これらのオプションのいずれも音を流さないことを忘れないでください。オーディオをストリーミングするときに、私はそのような短い待ち時間を得ることができませんでした。それは実行可能かもしれない、私はちょうど方法を考え出していない。

最も反応クライアントでもゼロに設定されたネットワークキャッシュとffplayVLC導入あまりの待ち時間だった - それはあまりにもしばしば「再同期」にストリームを試してみましたので、そのようなキャッシュでそれは実際には、悪化しました。

さらに詳しい情報が必要な場合は、私の所見をpostにしました。それが役に立てば幸い。私はフィードバックを感謝します。^_^

+0

FFmpegには、「チューニングゼロ」のようないくつかのx264エンコーディング設定があります。これは、ここで便利です:http://trac.ffmpeg.org/wiki/StreamingGuide#Latency – rogerdpack

+0

私はあなたのウェブサイトにこれを実行する前に来た記事。私の意見では、vlcとffplayはほぼ同じレイテンシを持っていました。 – user1767754

+0

私は以下のURLのように解決パラメータを渡そうとしましたが、動作していないようです、私は320x240を過ぎてもrtspで記録されたmp4ビデオは高解像度のままであることを意味します:( "-t 30 -i \" rtsp ://xxx.xxxxxx.com/2 \ "-s 320x240 -acodec copy -vcodec copy -to" –

関連する問題