我有一个存储在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;
}
关于c++ - 如何将原始字符*放入AVPacket,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23186010/