我花了几个小时谷歌搜索它,但找不到任何东西.
我创建了一个小项目来证明这一点:
github project.它为两个不同的视频流设置两个AVPlayer,并更新UI以显示玩家的AVPlayerItem的loadedTimeRanges.对于第一个视频,它只缓冲~60秒,这很好,但对于第二个视频,它保持缓冲.
self.player1 = [AVPlayer playerWithURL:url1];self.player2 = [AVPlayer playerWithURL:url2];
和两个文字标签:
self.data1.text = [Nsstring stringWithFormat:@"Player 1 loadedTimeRanges: %@",self.player1.currentItem.loadedTimeRanges];self.data2.text = [Nsstring stringWithFormat:@"Player 2 loadedTimeRanges: %@",self.player2.currentItem.loadedTimeRanges];
也许这可能很重要:过度缓冲的视频没有音轨,只有视频.
更新:我使用MPMovIEPlayerController而不是AVPlayer重现了问题,并检查了playableDuration属性.随着第一部电影它停止大约60秒,第二部电影继续前进,然后内存不足.
UPDATE2:我收到了实际的视频文件,并把它们放到了DropBox上,并试图传播这些文件:然后我没有问题!它缓冲整个电影,但它不会耗尽内存.如果我从原始站点(我们的视频共享站点)流式传输它,它只会耗尽内存. URL存在于github项目中.
我真的很期待任何可能导致这种情况的提示.
谢谢!
解决方法 这个问题确实是由于缺少从Wowza媒体服务器发送的视频流的音轨而引起的. (我从您的流网址中推断出您正在使用Wowza媒体服务器来传输视频).为验证此问题,我创建了一个没有音轨的5分钟视频文件.
mplayer -nolirc -vo null -ao null -frames 0 -IDentify test_60.mp4...opening vIDeo decoder: [ffmpeg] FFmpeg's libavcodec codec familySelected vIDeo codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)==========================================================================ID_VIDEO_CODEC=ffh264Audio: no soundStarting playback......
然后我使用mp4Box为该视频文件添加了一首mp3轨道.
MP4Box -new -add test_60.mp4 -add test_music.mp3 test_60_music.mp4
并确认确实存在音轨.
mplayer -nolirc -vo null -ao null -frames 0 -IDentify /tmp/test_60_music.mp4...AUdio: 44100 Hz,2 ch,floatle,320.0 kbit/11.34% (ratio: 40000->352800)ID_AUdio_BITRATE=320000ID_AUdio_RATE=44100ID_AUdio_NCH=2Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)==========================================================================AO: [null] 44100Hz 2ch floatle (4 bytes per sample)ID_AUdio_CODEC=ffmp3floatStarting playback......
然后,我将test_60.mp4和test_60_music.mp4放在Wowza内容目录中,并对它们进行测试.我实际上写了一个类似于你的小测试应用程序来检查loadedTimeRanges,但只是从设备通过safari加载视频应该足以看出差异.
我打开wowza_server:1935 / vod / mp4:test_60.mp4 / playList.m3u8并在开始播放时按下暂停.缓冲区指示器持续增加,直到加载完整的5分钟视频.
然后,我打开了wowza_server:1935 / vod / mp4:test_60_music.mp4 / playList.m3u8并做了同样的事情,但只加载了第一个1/5(大约1分钟).
所以Wowza服务器的打包似乎是一个问题 – 注意在adobe(flash)媒体服务器5.0上我不会遇到这个问题.无论视频是否包含音轨,都只缓冲60秒.
希望这很有帮助.我在Wowza forums请求了Wowza人的输入
总结以上是内存溢出为你收集整理的ios – AVPlayer(和MPMoviePlayerController)尝试缓冲整个(流媒体)视频,耗尽内存全部内容,希望文章能够帮你解决ios – AVPlayer(和MPMoviePlayerController)尝试缓冲整个(流媒体)视频,耗尽内存所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)