问题描述
我目前有返回有效 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
作为媒体选项传递。