我有一个AVPlayer正在流式传输实时HLS流。我正在使用以下代码。
-(void)initPlayer{
self.mPlaybackView = [[AVPlayerPlaybackView alloc] initWithFrame:mPlaybackViewFrame];
[mPlaybackView setVideoFillMode:@"AVLayerVideoGravityResizeAspectFill"];
NSURL *url = [NSURL URLWithString:mCamera.url];
self.playerItem = [AVPlayerItem playerItemWithURL:url];
self.mPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[mPlayer addObserver:self forKeyPath:@"status" options:0 context:AVPlayerPlaybackViewControllerStatusObservationContext];
}
//observer
- (void)observeValueForKeyPath:(NSString*)path ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
AVPlayer* mPlayer1 = (AVPlayer*)object;
if ([path isEqualToString:@"status"])
{
NSLog(@"Video Player status %i",mPlayer1.status);
if (mPlayer1.status == 2)
{
[self itemDidFinishPlaying];
}
if (mPlayer1.status == AVPlayerStatusReadyToPlay)
{
[mPlaybackView setPlayer:mPlayer];
[mPlayer play];
}
}
}
如果没有音频频道,AV播放器不播放我的直播视频。我正在使用Wowza作为我的媒体服务器。直播是相机输入。我可以毫无问题地播放AVPlayer的多个实例(带音频)。
VIDEO 1
mediastreamvalidator: Beta Version 1.1(131115)
Validating http://xx.xx.xx.xx/live/127.stream/playlist.m3u8
Validating child playlist chunklist_w101231837.m3u8 [193.55 kbits/sec]
Segment processing interrupted: chunklist_w101231837.m3u8 - 32 out of 32 segments processed...
--------------------------------------------------------------------------------
http://xx.xx.xx.xx/live/127.stream/playlist.m3u8
--------------------------------------------------------------------------------
Playlist Syntax:
Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
--> #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=193548,CODECS="avc1.66.41, mp4a.40.2",RESOLUTION=640x480
Alternate playlist(s):
--------------------------------------------------------------------------------
chunklist_w101231837.m3u8
--------------------------------------------------------------------------------
Playlist Syntax: OK
Processed 32 out of 32 segments:
media_w101231837_191.ts:
WARNING: Media segment bandwidth exceeded target playlist bandwidth by 12 % (216.43 kbits/sec vs.193.55 kbits/sec, limit is 10 %).
media_w101231837_192.ts:
WARNING: Media segment bandwidth exceeded target playlist bandwidth by 15 % (221.86 kbits/sec vs.193.55 kbits/sec, limit is 10 %).
media_w101231837_195.ts:
WARNING: Media segment bandwidth exceeded target playlist bandwidth by 15 % (222.77 kbits/sec vs.193.55 kbits/sec, limit is 10 %).
Average segment duration: 9.93 seconds
Playlist target bitrate: 193.55 kbits/sec
Segment bitrate: Average: 189.54 kbits/sec, Max: 222.77 kbits/sec (exceeds target by 15.10 %)
Average segment structural overhead: 13.50 kbits/sec (7.13 %)
答案 0 :(得分:4)
我正在使用Stitched Stream Player在Apple开发人员的示例代码中给出..
愿你从中获得帮助..
答案 1 :(得分:0)
我不知道它是否能解决您的问题,但这是我在播放没有音频的HTTP直播视频时发现的一些重要信息:
当显示项目的视频图层添加到视图层次结构中时,AVPlayerItem的状态仅会更改为“准备播放”。如果视频包含音频,则不是这种情况。
即使您没有将视频图层添加到视图层次结构中,AVPlayer的状态仍会变为“准备播放”。