iOS(iPhone / iPad)的H.264硬件编码/解码?

10
我使用AVFoundation框架在iOS中进行了实时视频处理,参考了这个链接,并测试了它的运行情况良好。现在我想在绘制之前使用H.264编码和解码。为此,我尝试从AVCaptureSession获取H.264编码数据,在开始捕获之前将AVVideoCodecH264设置为AVCaptureSession的videosetting。

NSDictionary* videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:value,key,AVVideoCodecH264,AVVideoCodecKey, nil]; [captureOutput setVideoSettings:videoSettings];

上述代码没有产生任何输出缓冲区的变化,与之前获得的缓冲区格式相同。如何满足我的要求?这是否可行?如果可行, 请帮助我开始使用iOS中的H.264。

我正在寻找ARMv7设备... - Asta ni enohpi
@Asta: Daniel 给你的回答管用了吗?如果不行,那你最终是怎么解决的呢? - MK Singh
1个回答

1

无法直接访问编码关键帧。您可以在此处找到一些有见地的评论:https://stackoverflow.com/questions/4399162/how-to-stream-live-video-from-iphone-to-a-media-server-like-wowza

一对AVVideoCodecH264,AVVideoCodecKey可以用作outputSettings中的参数。

NSError *error = nil;
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                AVVideoCodecH264, AVVideoCodecKey, nil];

AVAssetWriterInput *assetWriterInput = [[AVAssetWriterInput alloc]
                                   initWithMediaType:AVMediaTypeVideo
                                      outputSettings:outputSettings];
AVAssetWriter *assetWriter = [[AVAssetWriter alloc] initWithURL:fileURL
                                                       fileType:AVFileTypeMPEG4
                                                          error:&error];
if (!error && [assetWriter canAddInput:assetWriterInput])
  [assetWriter addInput:assetWriterInput];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接