首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动视频前12秒内视频帧不变

启动视频前12秒内视频帧不变
EN

Stack Overflow用户
提问于 2014-06-16 06:05:24
回答 1查看 357关注 0票数 0

我正在通过一个使用MPMoviePlayerController的简单iOS测试应用程序来使用直播流。我在iOS模拟器7.1,XCode 5.1上运行它。我现在没有可以测试的物理设备。

该流位于本地网络上,但通过WiFi进行访问。使用VLC生成直播流,如下所示:

代码语言:javascript
复制
vlc -I dummy rtsp://media1.law.harvard.edu/Media/policy_a/2012/02/02_unger.mov vlc://quit --sout='#transcode{vcodec=h264,vb=512,scale=1,acodec=none,venc=x264{preset=ultrafast,aud,profile=baseline,level=30,keyint=5,bframes=0,ref=1},acodec=aac,ab=128}:std{access=livehttp{seglen=10,delsegs=true,numsegs=5,index=/tmp/streaming/mystream.m3u8,index-url=http://192.168.254.4/mystream-########.ts},mux=ts{use-key-frames},dst=/tmp/streaming/mystream-########.ts}'

当我开始播放视频流时,我几乎可以立即听到声音,并在屏幕上看到一帧冻结的视频;大约12秒后,视频开始正常播放,此后一切正常。控制台中没有错误。

我可以看到iOS请求流索引文件,然后在应用程序加载时请求流文件-所以它请求文件是OK的。

我认为这可能与iOS最初更喜欢使用较低的比特率,然后根据可用带宽切换到较高的比特率有关,正如我在文档中读到的那样。

如果我将MPMoviePlayerController指向下面的苹果测试流,它会立即播放,似乎先使用较低质量的流大约12秒,然后切换到更高的质量/比特率:http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8

我试着演示了一个包含多个比特率的.m3u8文件,就像苹果的例子一样,但它的表现与冻结的帧相同,只是在较低的比特率下播放了12秒,播放了大约2-5秒的低分辨率,然后屏幕会空白一段时间,然后切换到高比特率-音频一直都能听到。控制台出现播放停顿错误。

有没有人知道视频帧冻结的原因,以及如何解决它,让它从一开始就流畅播放?

EN

回答 1

Stack Overflow用户

发布于 2014-06-17 14:19:20

通过使用其说明编译最新版本的FFmpeg修复了此问题:

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

因为FFMpeg可以做我们需要的任何事情,所以对它的支持也会失去VLC部分。

代码语言:javascript
复制
~/bin/ffmpeg -y -i rtsp://media1.law.harvard.edu/Media/policy_a/2012/02/02_unger.mov -hls_time 10 /tmp/streaming/mystream.m3u8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24234519

复制
相关文章

相似问题

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