现在成功开启了RTSP服务器,但是在设置RTP的通信协议的时候失败。
在官网上有这么一个参数,但是在设置了以后,跟没有设置时是一模一样,都是UDP的包。
--sout-rtp-proto={dccp,sctp,tcp,udp,udplite}
Transport protocol
This selects which transport protocol to use for RTP.
我是以代码形式写这个程序,关键代码如下:
首先是使用VLC库的初始化的
const char * const vlc_args[] =
{
"-I", "dummy", /// Don't use any interface
// "-I", "rc",
"--ignore-config", /// Don't use VLC's config
"--no-drop-late-frames", /// arrive to the video output after their intended display date
"--no-video-title-show",
// "--rtsp-host", "0.0.0.0",
// "--rtsp-port", "8554",
"--rtsp-tcp",
};
m_pInst = libvlc_new(sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);
然后是屏幕参数的:
strTransCode:
#transcode{vcodec=h264,fps=8, venc=x264{keyint=8,min-keyint=6,preset=faster,profile=baseline,tune=zerolatency}}:rtp{proto=tcp, sdp=rtsp://:8554/screen_grab }
strScreenParam:
:live-caching=20 :no-sout-audio :no-sout-standard-sap :rtsp-caching=20 :screen-fps=8 :screen-height=768 :screen-mouse-image=mouse/mouse_arrow_16.png :screen-width=1360 :sout-keep :sout-rtp-caching=20 :udp-caching=20
最后是屏幕录制的:
libvlc_vlm_add_broadcast(m_pInst,
m_pBroadcastName,
"screen://",
strTransCode.c_str(),
1,
strScreenParam.c_str(),
1,
0);
其实我想关键起作用的就是 rtp{proto=tcp...},为什么它就是一直只是UDP呢?
上网找资料从google的第一页每个链接打开到最后一页。。。 仍然未找到问题所在。
VLC版本:2.1
开发环境:Win7 64bit + Qt 4.8