Kar*_*ten 10 video-streaming h.264 ios
我想分享一下我在某些日子里制定的知识.关于它,还有很多东西要找.
我仍然对声音感到震惊.欢迎提出意见和建议.;-)
Kar*_*ten 14
这里是我的代码片段.宣布它
@property (nonatomic, retain) AVSampleBufferDisplayLayer *videoLayer;
Run Code Online (Sandbox Code Playgroud)
首先设置视频层
self.videoLayer = [[AVSampleBufferDisplayLayer alloc] init];
self.videoLayer.bounds = self.bounds;
self.videoLayer.position = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
self.videoLayer.videoGravity = AVLayerVideoGravityResizeAspect;
self.videoLayer.backgroundColor = [[UIColor greenColor] CGColor];
//set Timebase
CMTimebaseRef controlTimebase;
CMTimebaseCreateWithMasterClock( CFAllocatorGetDefault(), CMClockGetHostTimeClock(), &controlTimebase );
self.videoLayer.controlTimebase = controlTimebase;
CMTimebaseSetTime(self.videoLayer.controlTimebase, CMTimeMake(5, 1));
CMTimebaseSetRate(self.videoLayer.controlTimebase, 1.0);
// connecting the videolayer with the view
[[self layer] addSublayer:_videoLayer];
Run Code Online (Sandbox Code Playgroud)
将视频数据提供给图层
__block AVAssetReaderTrackOutput *outVideo = [AVAssetReaderTrackOutput assetReaderTrackOutputWithTrack:video outputSettings:dic];
if( [assetReaderVideo startReading] )
{
[_videoLayer requestMediaDataWhenReadyOnQueue: assetQueue usingBlock: ^{
while( [_videoLayer isReadyForMoreMediaData] )
{
CMSampleBufferRef *sampleVideo = [outVideo copyNextSampleBuffer];
[_videoLayer enqueueSampleBuffer:sampleVideo.data];
}
}];
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息:2014年WWDC会议513内容非常丰富.
| 归档时间: |
|
| 查看次数: |
6873 次 |
| 最近记录: |