2012-01-23 4 views
8

Я сделал обработку видео в реальном времени в ios с использованием AVFoundation framework, справка this link .i проверили, что она работает нормально. теперь я хочу использовать кодировку и декодирование h264 [Before draw] .i попытаюсь получить h264-кодированные данные из AVCaptureSession, поэтому я установил AVVideoCodecH264 в видеообъявления AVCaptureSession перед началом записи.h 264 Аппаратное кодирование/декодирование Для IOS (IPhone/Ipad)?

NSDictionary * videoSettings = [NSDictionary dictionaryWithObjectsAndKeys: значение, ключ, AVVideoCodecH264, AVVideoCodecKey, ноль]; [captureOutput setVideoSettings: videoSettings];

выше код не производит никаких изменений в выходном буфере, тот же формат буфера как и раньше. как выполнить мое требование? Является ли это возможным ? если это так, пожалуйста, помогите мне начать работу, h264 в ios.

+0

и ваше устройство? –

+0

Я искал устройство armv7 ... –

+0

@Asta: Ответ, данный Даниилом для вас? Если нет, то как вы, наконец, решили это? –

ответ

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];