首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用移动VLC在iOS上播放rtsp流时的绿色屏幕

使用移动VLC在iOS上播放rtsp流时的绿色屏幕
EN

Stack Overflow用户
提问于 2015-04-28 03:24:55
回答 1查看 1.7K关注 0票数 0

我有一个球员在iOS上基于VLC通过mobileVLCKit.framework。

在执行和播放h264 rtsp流时,iPhone将正确显示视频。然而,在开始的几秒钟,有绿色屏幕显示。我认为原因是我的框架还没有到达,yuv=000被映射成绿色的rgb。

我可以添加一些选项或操作,迫使玩家在收到I-帧后发挥?还是有其他方法来避免绿屏问题?

这是我的密码

代码语言:javascript
复制
- (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];
     }
}

如有任何答复,将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 09:09:46

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

DecodeVideo()函数的开头添加以下代码以跳过非i帧,这样就可以解决绿色屏幕问题。

代码语言:javascript
复制
if (p_sys->b_first_frame && b_gotpicture) {
    if (AV_PICTURE_TYPE_I != frame->pict_type) {
        av_frame_unref(frame);
        break;
    }
}

然后,自己构建mobileVLCKit.framework。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29909737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档