2012-02-08 2 views
1

Работает обработка видео в IOS (iphone/ipod/ipad) Использование цели c. Я использую AVFoundation Framework для захвата видео. Я хочу кодировать/декодировать этот видеокадр, используя ffmpeg-libx264. Я скомпилировал ffmpeg-x264 lib для ios. Я получил kCVPixelFormatType_32BGRA от AVFoundation.ffmpeg-X264 encode --BGRA to AVFrame (ffmpeg) и наоборот? для IOS

моя проблема
1.How конвертировать kCVPixelFormatType_32BGRA в AVFrame для базовой станции с использованием avcodec_encode_video?

2.Как преобразовать AVFrame в kCVPixelFormatType_32BGRA @ декодировать сторону от avcodec_decode_video2?

Пожалуйста, помогите мне начать процесс или дать путь для рабочего учебника. Спасибо заранее.

ответ

1

Если вы пытаетесь использовать FFmpeg вам нужно использовать kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange, а не kCVPixelFormatType_32BGRA, а затем вы можете засунуть его в AVFrame. Вероятно, вы также захотите преобразовать то, что вы получаете с камеры iOS (YUVNV12) до YUV420P, чтобы вы могли получить его на других устройствах, которые не являются iOS. Если вы просто используете устройства iOS, и это все, о чем вы заботитесь, вы можете пропустить эту сторону преобразования цвета и просто упаковать его в AVFrame.

Поскольку вы уже положить его в формат YUV, вы можете просто использовать CVPixelBufferGetBaseAddressOfPlane (Buf, 0) и кодировать этот адрес.

После декодирования изображения, вам необходимо изменить цвета на BGRA от YUV420P. Если вы не поменяли цвета правильно, прежде чем закодировать его, вы просто измените YUVNV12 на BGRA.

Надеюсь, это поможет. Вы можете найти правильные алгоритмы преобразования цветов в Интернете.

Смежные вопросы