我正在尝试弄清楚如何使用 VLC 的服务器功能。更具体地说,如何在 RTP 流式传输时导出 SDP 文件。在第四章在与 RTP 流相关的部分中给出了服务器和客户端的示例:
vlc -vvv input_stream --sout '#rtp{dst=192.168.0.12,port=1234,sdp=rtsp://server.example.org:8080/test.sdp}'
vlc rtsp://server.example.org:8080/test.sdp
我不太清楚如何让它真正发挥作用。我使用两个 cmd 实例为服务器和客户端尝试了这两个命令:
vlc -I rc screen:// --sout=#rtp{dst=127.0.0.1,port=4444,sdp=rtsp://localhost:8080/test.sdp}
vlc -I rc rtsp://localhost:8080/test.sdp
调用第二条命令导致第一条命令崩溃。第二条命令显示错误消息“无法连接到 localhost:8080”。
答案1
您的问题是,您查看的示例很可能是用于流式传输文件,而示例命令正在使用输入screen://
。要使screen://
设备工作,您需要先对视频进行编码。因此,请尝试以下操作:
vlc -I rc screen:// --sout=#transcode{vcodec=h264,vb=800,scale=0.25,fps=10}:rtp{dst=127.0.0.1,port=4444,sdp=rtsp://localhost:8080/test.sdp}
vlc -I rc rtsp://localhost:8080/test.sdp
答案2
您需要用双引号引用该命令
--sout="#transcode{vcodec=h264,vb=800,scale=0.25,fps=10}:rtp{dst=127.0.0.1,port=4444,sdp=rtsp://localhost:8080/test.sdp}"