Chi*_*Hao 14 ffmpeg avfoundation h.264 hardware-acceleration ios
我已经使用ffmpeg来解码我从ip cam收到的每一帧.简短的代码如下所示:
-(void) decodeFrame:(unsigned char *)frameData frameSize:(int)frameSize{
AVFrame frame;
AVPicture picture;
AVPacket pkt;
AVCodecContext *context;
pkt.data = frameData;
pat.size = frameSize;
avcodec_get_frame_defaults(&frame);
avpicture_alloc(&picture, PIX_FMT_RGB24, targetWidth, targetHeight);
avcodec_decode_video2(&context, &frame, &got_picture, &pkt);
}
Run Code Online (Sandbox Code Playgroud)
代码很好,但它是软件解码.我想通过硬件解码来提高解码性能.经过大量的研究,我知道它可以通过AVFoundation框架实现.AVAssetReader类可能会有所帮助,但我无法弄清楚下一步是什么.有人可以为我指出以下步骤吗?任何帮助,将不胜感激.
rpj*_*rpj 22
iOS不直接向硬件解码引擎提供任何公共访问,因为硬件总是用于解码iOS上的H.264视频.
因此,会话513为您提供了在iOS上允许逐帧解码所需的所有信息.简而言之,每次会议:
CMVideoFormatDescriptionRef通过您的SPS和PPS NALU 创建一个CMVideoFormatDescriptionCreateFromH264ParameterSets()CMSampleBuffer每个会话513.VTDecompressionSessionRef,并VTDecompressionSessionDecodeFrame()使用样本缓冲区进行
提要AVSampleBufferDisplayLayer,其-enqueueSampleBuffer:方法不需要创建自己的解码器.| 归档时间: |
|
| 查看次数: |
16035 次 |
| 最近记录: |