【发布时间】: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 视频输出。之后,每个视频都重新开始工作。我在这里提到这一点是因为这个 stackoverflow 问题排名很高。因此,它也可能对遇到此“绿屏”问题的普通 PC 用户有所帮助。