基于 TCP 的 LibVLC# 流

问题描述

我目前有返回有效 URI 的代码,用于从 IP 摄像机进行流式传输。我把那个 uri 传递给一个对象来进行流式传输。我可以配置对象以便它们通过 TCP 传输吗? VLC 应用程序有一个设置,我可以通过 TCP 传输相同的 URI,因此我知道相机具有该功能。当我使用 VLC 应用程序时,它只是通过端口 554 为 TCP 视频流强制 RTP。目前使用此代码,它通过 554 设置 RTSP,并开始从不同端口通过 UDP 流式传输 RTP。我错过了什么?

Establish Objects 
            _libVLC = new LibVLC();
            _mp = new MediaPlayer(_libVLC);
            videoView.MediaPlayer = _mp;

////GET local uri//// 

            bool check = Uri.IsWellFormedUriString(local_uri.Uri.ToString(),UriKind.RelativeOrAbsolute);   
            if (check)
            {
                                          
                    _mp.Play(new LibVLCSharp.Shared.Media(_libVLC,local_uri.Uri));
                    check = false;

uri 字符串返回格式为 Rtsp://MY-IP

我已经尝试了其他一些人推荐的方法,将其重新格式化为... rtsp-tcp://MY-IP 它似乎不起作用(或者我做错了)。

//////////////////////////////// 编辑:////////////////////

            LibVLCSharp.Shared.Media media = new Media(_libVLC,local_uri.Uri);
            media.AddOption(":rtsp-tcp"); //<---- Is this passing the option correctly. 
            _mp.Play(media);

解决方法

"--rtsp-tcp" 作为 LibVLC 选项传递,或将 :rtsp-tcp 作为媒体选项传递。

https://wiki.videolan.org/VLC_command-line_help/