MobileVLCKit播放rtsp流时,设置TCP协议的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MobileVLCKit播放rtsp流时,设置TCP协议的问题相关的知识,希望对你有一定的参考价值。

参考技术A 之前使用的是海康的SDK来播放rtsp流的,里面有专门设置采用 TCP 协议还是 UDP 协议的接口。后来换成使用 MobileVLCKit.framework 的 vlc 播放器时,因为没有设置 TCP 协议,一直取流失败,找了好久也没有在vlc库文件中发现设置 TCP 的接口。经过和小组成员一番摸索,最后找到了处理办法:

如下:

不足之处,还请多多指教。

有需要ijkplayer demo或者有其它问题的小伙伴,可以直接加我 QQ。

MobileVLCKit 播放视频流不显示

【中文标题】MobileVLCKit 播放视频流不显示【英文标题】:MobileVLCKit Playing video streaming not displays 【发布时间】:2016-01-21 15:42:43 【问题描述】:

我使用 MobileVLCKit 框架在 iOS 中实现了MobileVLCKit。我有一个问题,

当我声明播放器@Interface 时,流和语音运行良好。

#import <MobileVLCKit/MobileVLCKit.h> 
 @interface ViewController ()<VLCMediaPlayerDelegate>
        VLCMediaPlayer *vlcPlayer1
  
    @end

但是,在本地函数中声明 VLCMediaPlayer 对象,视频预览不显示,但音频 id 正在播放。

- (void)viewDidLoad 
   [super viewDidLoad];
   VLCMediaPlayer *vlcPlayer1 = [[VLCMediaPlayer alloc] initWithOptions:nil];
   vlcPlayer1.drawable = view;
   media = [VLCMedia mediaWithURL:[NSURL URLWithString: UrlString]];
  [vlcPlayer1 setMedia:media];
  [vlcPlayer1 play];

我该如何解决这个问题。因为,我需要动态创建视图。

【问题讨论】:

您找到解决方案了吗?我也面临同样的问题。 【参考方案1】:

试试这个:

[vlcplayer.media addOptions:@ @"network-caching" : @300];

如果不起作用,请将 300 替换为更大的值。 这可能行得通。

【讨论】:

【参考方案2】:

所以这两个问题/答案都让我走上了正确的道路,但这最终对我有用。

NSURL* _uri    = [NSURL URLWithString:uri];
NSArray* initOptions = [NSArray arrayWithObjects:@"--codec=avcodec", "--network-caching=10000", nil];

self.player = [[VLCMediaPlayer alloc] initWithOptions:initOptions];
self.player.media = [VLCMedia mediaWithURL:_uri];

看起来“addOptions”是有效的,但我的特定用例没有选择它,而是我不得不从一开始就使用选项实际初始化 VLCMediaPlayer。效果很好,因为它实际上更适合其他 JAVA/Android/CMD 行 VLC api。

【讨论】:

以上是关于MobileVLCKit播放rtsp流时,设置TCP协议的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在MobileVLCKit中循环播放视频?

MobileVLCKit 播放视频流不显示

读取 RTSP 流时强制 FFMPEG 使用 TCP 协议

使用rtsp流时Tensorflow对象检测速度慢

EasyNVR平台新版本测试时接入RTSP视频流在线无法播放的问题优化

播放广播流时如何设置 AVPLayer 的音量