VLC RTSP推流
目的:把桌面或视频推送出去(服务器),用VLC可接收播发(客户端);
-
搭建VLC环境
https://blog.****.net/JellyLi2091/article/details/83616216
-
用代码推流;
vlc是通过字符串的方式设置参数,这些参数可以在VLC客户端推流向导过程中查看;
int main(int argc, char **argv) {
//转码参数:#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}
//网络参数:rtp{sdp=rtsp://:8554/} //此处隐藏了本机的IP地址,只设置了端口号;
const char *sout = "#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{sdp=rtsp://:8554/}";
const char *MRL;
//推桌面;
//MRL= "screen://";
//推视频;
MRL= "test.mkv";
//选项参数,可设置推流的大小,帧率,缓存时间...
const char* options[]= {
"screen-top=0",
"screen-left=0",
"screen-width=1000",
"screen_height=800",
"screen-fps=30"
};
const char *media_name = "test";
//开始推流;
libvlc_instance_t *vlc= libvlc_new(0, NULL);
libvlc_vlm_add_broadcast(vlc, media_name, MRL, sout, 5, options, true, false); //5为optoins个数;
libvlc_vlm_play_media(vlc, media_name);
//play 30s
_sleep(30000);
//结束推流;
libvlc_vlm_stop_media(vlc, media_name);
libvlc_vlm_release(vlc);
return 0;
}
-
用VLC客户端推流;
-
VLC接收播放;
输入推流端的IP地址及推流设置的端口号;
同步连接需要一定的时间,几秒到几十秒视网络及传输的画面大小而定;
Demo:https://download.****.net/download/jellyli2091/10757923