2013-05-04 6 views
7

VLC를 사용하여 데스크톱을 (LAN을 통해) 스트리밍하는 방법과 최저 대기 시간 (< 100ms)을 달성하는 방법을 알아 내려고 노력했습니다. 목표는 다른 컴퓨터가 스트림을 수신하고 스트리밍하는 동안 게임을 즐길 수있게하는 것입니다 (예 : TV 옆의 PC에서 PC1에서 게임하기).대기 시간이 가장 짧은 VLC를 사용하는 RTP를 통한 데스크톱 스트리밍

어떤 설정을 사용해야합니까? 여러 접근법을 시도했지만 아직 성공하지 못했습니다.

편집 : VLC 외에 다른 것을 사용하고 있습니다.

답변

8

나는 또한 VLC를 사용해 보았고 3 초 동안 대기 시간을 가질 수 없었다. FFmpeg는 경이로움을 느끼고 마침내 대기 시간 1 초를 제공했습니다.

mpeg2video와 UPD가 최상의 결과를 제공 했으므로 RTP 대기 시간이 약간 더 나 빠졌지 만 매우 가깝습니다. x264로 전환하면 대기 시간이 조금 더 걸리는 대신 품질이 향상되지만 실제로는 동적 콘텐츠의 양과 CPU의 속도에 따라 다릅니다. UDP로 작업하는 x264 밖에 없지만 RTP로 처리하는 방법이 있어야합니다.

재생할 수 있는지 확실하지 않습니다. 서버가 과중한 작업 부하를 받고 대기 시간이 현저해질 것입니다. 적어도 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를 실행하는 경우 x11grab 대신 dshow을 사용하십시오.

시계는 ffplay udp://192.168.0.10:1234 또는 ffplay sdp://192.168.0.10:1234입니다.

이러한 옵션 중 어느 것도 소리를 스트리밍하지 않는다는 것을 기억하십시오. 나는 오디오를 스트리밍 할 때 그러한 낮은 대기 시간을 얻을 수 없었다. 그것은 가능 할지도 모르지만, 나는 방법을 이해하지 못했습니다.

가장 반응이 좋은 클라이언트는 이었습니다. VLC은 네트워크 캐시가 0으로 설정되어 있어도 지연 시간이 너무 길었습니다. 스트림을 너무 자주 다시 동기화하려고 시도했기 때문에 실제로 캐시가 악화되었습니다.

자세한 내용이 필요하면 내 결과에 대해 post을 작성하십시오. 희망이 도움이됩니다. 나는 어떤 의견을 주셔서 감사합니다.^_^

+0

FFmpeg에는 "tune zerolatency"와 같은 일부 x264 인코딩 설정이 있습니다.이 설정은 다음과 같이 유용 할 수 있습니다. http://trac.ffmpeg.org/wiki/StreamingGuide#Latency – rogerdpack

+0

나는이 사이트를 실행하기 전에 귀하의 웹 사이트를 방문했습니다. 조. 제 생각에는 vlc와 ffplay는 거의 동일한 대기 시간을 가졌습니다. – user1767754

+0

아래 URL과 같은 해상도 매개 변수를 전달하려고했지만 작동하지 않는 것으로 나타났습니다. rtsp로 기록 된 mp4 비디오는 320x240을 통과하더라도 고해상도를 유지합니다. ( "-t 30 -i \"rtsp : //xxx.xxxxxx.com/2 \ "-s 320x240 -acodec copy -vcodec copy -to" –

관련 문제