Ale*_* OS 8 iphone avfoundation video-encoding libav ios4
我正在尝试使用ffmpeg的libav*库将iPhone的相机帧编码为H.264视频.我在Apple的文章中发现了 如何将CMSampleBuffer转换为UIImage,但是如何将其转换为ffmpeg的AVPicture?
谢谢.
Ale*_* OS 14
回答我自己的问题:
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(pixelBuffer, 0);
// access the data
int width = CVPixelBufferGetWidth(pixelBuffer);
int height = CVPixelBufferGetHeight(pixelBuffer);
unsigned char *rawPixelBase = (unsigned char *)CVPixelBufferGetBaseAddress(pixelBuffer);
// Do something with the raw pixels here
// ...
// Fill in the AVFrame
CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);
AVFrame *pFrame;
pFrame = avcodec_alloc_frame();
avpicture_fill((AVPicture*)pFrame, rawPixelBase, PIX_FMT_RGB32, width, height);
Run Code Online (Sandbox Code Playgroud)
现在pFrame填写了使用像素格式的样本缓冲区的内容kCVPixelFormatType_32BGRA.
这解决了我的问题.谢谢.
| 归档时间: |
|
| 查看次数: |
3875 次 |
| 最近记录: |