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 RTSP推流

VLC RTSP推流

VLC RTSP推流

 

VLC RTSP推流

 

  • VLC接收播放;

VLC RTSP推流

输入推流端的IP地址及推流设置的端口号;

VLC RTSP推流

 

同步连接需要一定的时间,几秒到几十秒视网络及传输的画面大小而定;

VLC RTSP推流

 

Demo:https://download.****.net/download/jellyli2091/10757923