我有一个存储在 char * 中的压缩图像,我想将它放回 AVPacket,以便我可以将它放入 ffmpeg 解码器。有人可以展示如何做到这一点吗?任何示例或教程将不胜感激。
提前致谢
我向您展示了一个与一些 ffmpeg 编码器相关的示例代码。
static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
const AVFrame *pict, int *got_packet) {
unsigned char *buf;
int ret, bufLen;
int64_t maxsize;
// Store image data to buf variable.
buf = ....
// Calculate buf length.
bufLen = ....
// Allocate AVPacket.
maxsize = FF_MIN_BUFFER_SIZE + avctx->width * avctx->height * 9;
if ((ret = ff_alloc_packet2(avctx, pkt, maxsize)) < 0)
return ret;
// Copy buf to AVPacket.
memcpy(pkt->data, buf, bufLen);
pkt->size = bufLen;
*got_packet = 1;
return 0;
}
我是一名优秀的程序员,十分优秀!