gpt4 book ai didi

iphone - 如何将CMSampleBuffer/UIImage转换为ffmpeg的AVPicture?

转载 作者:行者123 更新时间:2023-12-03 18:35:07 25 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 的 libav* 库将 iPhone 的相机帧编码为 H.264 视频。我在这个发现 Apple's article如何将 CMSampleBuffer 转换为 UIImage,但如何将其转换为 ffmpeg 的 AVPicture?

谢谢。

最佳答案

回答我自己的问题:

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

现在,pFrame 已填充样本缓冲区的内容,该缓冲区使用像素格式 kCVPixelFormatType_32BGRA

这解决了我的问题。谢谢。

关于iphone - 如何将CMSampleBuffer/UIImage转换为ffmpeg的AVPicture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com