使用移动 VLC 在 iOS 上播放 rtsp 流时出现绿屏

     2023-03-12     89

关键词:

【中文标题】使用移动 VLC 在 iOS 上播放 rtsp 流时出现绿屏【英文标题】:Green screen when using mobile VLC to play rtsp streaming on iOS 【发布时间】:2015-04-28 03:24:55 【问题描述】:

我在 iOS 上通过 mobileVLCKit.framework 有一个基于 VLC 的播放器。

在执行和播放 h264 rtsp 流时,iPhone 将正确显示视频。但是,在开始的几秒钟内,显示绿色屏幕。我想原因是I-Frame还没到,yuv=000映射到rgb中的绿色。

我可以添加一些选项或操作来强制播放器在收到 I-Frame 后播放吗?或者有没有其他方法可以避免绿屏问题?

这是我的代码

- (instancetype)initWithFrame:(CGRect)frame

    self = [super init];
    if (self) 
        self.player =  [[VLCMediaPlayer alloc] init];
        self.player.delegate = self;
        self.player.media = [VLCMedia mediaWithURL:[NSURL URLWithString:@"rtsp://...."]];
        self.player.drawable = self.contentView;
    

    return self;


- (void)play

     if (self.player && !self.player.isPlaying) 
         [slef.player play];
     

任何回复将不胜感激。谢谢!

【问题讨论】:

你有什么解决办法吗?因为我无法播放 rtsp url 我可以播放 rtsp 网址。我的问题是绿屏。这个问题的最终解决方案是在播放开始时跳过非关键帧。它工作正常。 @chih-chunchan 你是怎么解决这个问题的?谢谢! @DevranCosmoUenal :我发布了我的决议作为您参考的答案。希望对你有帮助:) 大家好,仅供参考,我可以确认此问题也适用于普通 x86-64 PC 版本的 VLC 以及 OpenGL for Embedded Systems 2 视频输出设置.这些计算机运行的是 Linux 发行版 Kubuntu 20.04 LTS。有趣的是,并非所有 h264 视频文件都受到影响。但是,解决方案或解决方法只是切换回正常的常规 OpenGL 视频输出。之后,每个视频都重新开始工作。我在这里提到这一点是因为这个 *** 问题排名很高。因此,它也可能对遇到此“绿屏”问题的普通 PC 用户有所帮助。 【参考方案1】:

其实修改应该在/modules/codec/avcodec/video.c的函数static picture_t *DecodeVideo( decoder_t *p_dec, block_t **pp_block )中。

DecodeVideo()函数开头添加如下代码跳过非I帧,解决绿屏问题。

if (p_sys->b_first_frame && b_gotpicture) 
    if (AV_PICTURE_TYPE_I != frame->pict_type) 
        av_frame_unref(frame);
        break;
    

然后,自己构建 mobileVLCKit.framework。

【讨论】:

太棒了!谢谢! :)

在 VLC 播放器中播放 RTSP 流

】在VLC播放器中播放RTSP流【英文标题】:PlayingRTSPstreaminVLCplayer【发布时间】:2011-08-1808:29:37【问题描述】:我正在尝试用java制作一个简单的rtsp流服务器。服务器能够将视频正确地流式传输到自定义写入的播放器。我无法在vlc... 查看详情

rtsp流浏览器播放方案

...)中间件。底层调用ActiveX控件VlcOcx.dll。(商业用途需付费使用)3、服务器拉流转发及协议转换示意图如下所示:推流--------------服务器转发--------------拉流方法一览:a,vlc软件串流到http协议,网页显示几个视频需启动几个vlc,只适... 查看详情

如何在 wowza 上使用 rtsp 播放流?

】如何在wowza上使用rtsp播放流?【英文标题】:Howtoplaystreamwithrtsponwowza?【发布时间】:2017-04-0418:58:22【问题描述】:我执行命令ffmpeg以流式传输一个文件mp4(h264或h265)遵循:(RTSP源:打开(无需身份验证))ffmpeg-re-iinputvideo.m... 查看详情

请问手机网页如何播放rtsp?

...功能来新增插件rtsp是realmedia格式的广播网址格式,可以使用原生的realplayer打开。近年来很多其它的播放器软件,如暴风影音,腾讯视频和potplayer等也都支持打开这种链接。在文件菜单里找到“打开网址”或者“打开rtsp网址”就... 查看详情

用vlc读取摄像头产生rtsp流,dss侦听并转发

用VLC读取摄像头产生RTSP流,DSS侦听并转发(二)  之前介绍过《用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)》本文介绍另一种方法。摄像机地址是192.1.101.51,VLC运行在192.1.101.77上,DSS服务器架设在192.1.101.30上,二... 查看详情

vlc-2.2.1播放rtsp流,画面不清与卡顿问题处理

参考技术Avlc-vvv启动vlc,看调试打印,有如下信息:vlcpictureistoolatetobedisplayed(missing30ms)Morethan4lateframes,droppingframe解决方法:升级vlc-2.2.1到vlc-3.0.8。 查看详情

用vlc读取摄像头产生rtsp流,dss主动取流转发

用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)  摄像机地址是192.1.101.51,VLC运行在192.1.101.77上,DSS服务器架设在192.1.101.30上。 Step1:VLC从摄像机取流,产生RTSP流vlc-vvvrtsp://192.1.101.51--sout#rtp{dst=192.1.101.77,sdp=rtsp://192 查看详情

在 android 上播放 RTSP 流

】在android上播放RTSP流【英文标题】:PlayRTSPstreamingonandroid【发布时间】:2013-01-2902:16:54【问题描述】:我有一个RTSP源,我想在我的android应用上播放它,但它播放2或3分钟并且不能播放更长时间:(我怎样才能玩得更久?//thereismycod... 查看详情

vlc通过rtsp地址向ipc取流播放不了问题排查

... 另外一个是UDP,转RTP分析看看: WC!这丢包率能播放就神奇了,再看另一个, 好吧,基本上能确定是网络丢包所导致的。但是平常见到hik rtsp取流不都是tcp吗,怎么这里是udp的?问了下,才知道原来vlc可以设置的... 查看详情

从 RTSP 服务器渲染音频流

...服务器,它将A/V流从相机重新传输到客户端。客户端我们使用MF播放流。我可以成功播放视频,但无法播放来自服务器的音频。但是当我使用vlc播放时,它可以同时播放A/V。目前我正在实施IMFMediaStream并创建了我的自定义媒体流... 查看详情

用vlc串流推流?

用vlc串流推流,拉流的时候蓝色变红色,红色变蓝色参考技术A回到本文主题,使用RTSP推流桌面视频数据,需要演示的过程包含2个,即:推流,意思就是通过VLC播放器,将桌面的实时录制视频,采用RTSP协议推送到指定IP的端口上。拉... 查看详情

cvlc 不能播放 rtsp(omxplayer 可以)

...:23【问题描述】:得到这个大华vto流链接:与omxplayer一起使用,但vlc无法播放:rtsp://user:pass@ipadd:554/cam/realmonitor/channel=1&subtype=1这是vlc的输出:VLCm 查看详情

记:rtmp,rtsp,http视频流播放

参考技术Artmp的视频流使用video-js插件即可直接播放。rtsp的视频流无法直接在浏览器端播放,http的视频流工作中需要播放格式为mjpeg的视频流,所以,也无法直接播放。通过使用插件vlc可以使以上两类视频流直接播放,即在电脑... 查看详情

如何通过live555 linux流Udp组播,然后打开VLC读取的rtsp网络流

...415:51:01【问题描述】:我正在尝试设置一个网络,我正在使用live555阅读广播,然后尝试发送一个RTSP服务器我正在阅读网站上的教程,但找 查看详情

如何在 VLC 中播放 HLS 流

...【发布时间】:2016-05-2519:11:23【问题描述】:我正在尝试使用Vlc.DotNet在WPF中播放HLS流,但我不断收到403Forbidden错误。但是,我可以通过浏览器下载m3u8文件,它也可以使用https://www.hlsplayer.net/。我只是无法让它与VLC或任何其他媒... 查看详情

easynvr开发中vlcplayer如何将日志输入到文件中以及设置以tcp方式拉取rtsp流

在开发EasyNVR的过程中,经常需要使用VLCmediaplayer或者ffplay来确认对应的rtsp流是否可以拉取到流。在使用VLC播放器器有时需要存储对应的日志分析对应的源头是否可用,因此需要针对VLC进行设置。按照以下方式启动vlc.exe&#x... 查看详情

mobilevlckit播放rtsp流时,设置tcp协议的问题

参考技术A之前使用的是海康的SDK来播放rtsp流的,里面有专门设置采用TCP协议还是UDP协议的接口。后来换成使用MobileVLCKit.framework的vlc播放器时,因为没有设置TCP协议,一直取流失败,找了好久也没有在vlc库文件中发现设置TCP的接... 查看详情

用vlc搭建rtsp流媒体服务器

...,同时它也可以搭建流媒体服务器。VLC是一种开源的播放器,同时也可以用作流媒体服务器。vlc搭建rtsp流媒体服务器步骤:1、打开vlc,选择流 媒体-流 2、选择文件选项卡,添加一个视频文件,基本vlc可... 查看详情