Ubuntu가 RTP 스트림을 수신할 수 없는 이유는 무엇입니까?

Ubuntu가 RTP 스트림을 수신할 수 없는 이유는 무엇입니까?

컴퓨터 A에서 ffmpeg를 사용하여 rtp를 통해 데스크톱을 스트리밍하고 있습니다. 이것은 내 ffmpeg 코드입니다.

ffmpeg -f x11grab -framerate 25 -video_size 1920x1080 -i :1.0 -c:v libx264 -preset fast -pix_fmt bgr0 -b:v 3M -g 25 -an -f rtp_mpegts rtp://230.0.0.1:5005

컴퓨터 A의 vlc에서 "rtp://@230.0.0.1:5005"의 라이브 스트림을 재생할 수 있습니다. 하지만 VLC에서 "rtp://@230.0.0.1:5005"를 열려고 하면 컴퓨터 A와 동일한 네트워크에 있는 컴퓨터 B의 스트림을 재생할 수 없습니다.

http를 통해 mp4 파일을 전송하면 컴퓨터 B에서 재생할 수 있습니다. http 스트리밍의 경우 VLC -> 미디어 -> 스트리밍 -> (mp4 파일 추가)로 이동하여 A의 포트 8080에서 HTTP로 스트리밍합니다. 그런 다음 머신 B의 VLC에서 "http://serverip:portnumber"를 사용합니다.

내가 여기서 뭘 잘못하고 있는 걸까?

답변1

Ubuntu가 RTP 스트림을 수신할 수 없는 이유는 무엇입니까?

멀티캐스트 주소를 사용하고 있고 230.0.0.1현재 설정에는 두 호스트 사이에 멀티캐스트 경로가 없기 때문입니다.

따라서 이 문제를 해결하는 현재 방법 중 하나는 유니캐스트 전송을 사용하는 것입니다. 230.0.0.1시청하려는 호스트의 IP 주소를 변경하기만 하면 됩니다 .

ffmpeg -f x11grab -framerate 25 -video_size 1920x1080 -i :1.0 -c:v libx264 -preset fast -pix_fmt bgr0 -b:v 3M -g 25 -an -f rtp_mpegts rtp://a.b.c.d:5005

a.b.c.dUbuntu 호스트의 IP 주소는 어디에 있습니까?

그런 다음 Ubuntu 호스트에서 다음을 수행할 수 있습니다.

vlc rtp://@:5005

관련 정보