9

VLCを使用して(LAN経由で)デスクトップをストリーミングし、可能な限り低いレイテンシー(<100ms)を達成する方法を見つけようとしています。目標は、別のコンピューターがストリームを受信し、ストリーミング中にゲームをプレイできるようにすることです (つまり、テレビの横にある PC で PC1 からゲームをプレイします)。

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

編集:VLC以外のものも使用できます。

4

1 に答える 1

10

VLCでも同じことを試しましたが、3秒未満のレイテンシーを得ることができませんでした。FFmpeg は驚くべきことを行い、最終的に 1 秒以下のレイテンシーを実現しました。

mpeg2video と UPD が最良の結果を提供し、RTP レイテンシーは少し悪く感じましたが、非常に近いものでした。x264 に移行すると、遅延が少し増える代わりに品質が向上しますが、それは動的コンテンツの量と CPU の速度に大きく依存します。x264 は UDP でしか動作しませんでしたが、RTP で動作させる方法が必要です。

再生できるかどうかはわかりません。サーバーのワークロードが高くなり、遅延が顕著になります-少なくともLinuxでは、Windowsについてはわかりません。

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、低いほど良い)、および対象の ip:port を調整します。

Windows を実行している場合dshowは、x11grab.

ffplay udp://192.168.0.10:1234またはを使用して視聴しffplay sdp://192.168.0.10:1234ます。

これらのオプションはどれもサウンドをストリーミングしないことに注意してください. オーディオをストリーミングするときも、そのような低レイテンシーを実現できませんでした。それは実行可能かもしれませんが、方法がわかりませんでした。

最も反応の良いクライアントはffplayVLC、ネットワーク キャッシュがゼロに設定されていても遅延が大きすぎました。このようなキャッシュでは、ストリームを頻繁に「再同期」しようとしたため、実際にはさらに悪化しました。

さらに詳細が必要な場合は、調査結果について投稿しました。それが役に立てば幸い。フィードバックをいただければ幸いです。^_^

于 2013-06-09T21:23:09.413 に答える