2012-01-23 10 views
8

Tôi đã thực hiện xử lý video thời gian thực trong ios bằng cách sử dụng khung công tác AVFoundation, trợ giúp của this link .i đã thử nghiệm nó hoạt động tốt. Bây giờ tôi muốn sử dụng mã hóa và giải mã h264 [Trước khi vẽ] .i cố gắng lấy dữ liệu được mã hóa h264 từ AVCaptureSession, vì vậy tôi đã thiết lập AVVideoCodecH264 trong video của AVCaptureSession, trước khi bắt đầu chụp.h 264 Mã hóa/giải mã phần cứng cho IOS (IPhone/Ipad)?

NSDictionary * videoSettings = [NSDictionary dictionaryWithObjectsAndKeys: giá trị, chủ chốt, AVVideoCodecH264, AVVideoCodecKey, nil]; [captureOutput setVideoSettings: videoSettings];

mã trên không tạo ra bất kỳ thay đổi nào trong bộ đệm đầu ra, cùng định dạng bộ đệm giống như trước đây. làm thế nào để hoàn thành yêu cầu của tôi? là nó có thể? nếu vậy xin vui lòng giúp tôi để bắt đầu, h264 trong ios.

+0

và thiết bị của bạn là gì? –

+0

đang tìm thiết bị armv7 ... –

+0

@Asta: Câu trả lời do Daniel đưa ra có phù hợp với bạn không? Nếu không thì làm thế nào bạn cuối cùng đã giải quyết được điều này? –

Trả lời

1

Không có quyền truy cập trực tiếp vào khung hình chính được mã hóa. Bạn có thể tìm thấy một số ý kiến ​​sâu sắc về điều đó ở đây: https://stackoverflow.com/questions/4399162/how-to-stream-live-video-from-iphone-to-a-media-server-like-wowza

Một cặp AVVideoCodecH264, AVVideoCodecKey có thể được sử dụng như các thông số trong outputSettings trong

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