我在具有缓冲区大小的 uin8_t* 缓冲区中获取编码数据,我可以使用 ffmpeg 解码器来解码这些数据吗?
如果是这样,我怎样才能将 uint8_t* encoded_data 转换为 ffmpeg 所需的 AvPacket?
我需要初始化任何元数据参数吗?
最佳答案
AVPacket *pkt = av_packet_alloc();
av_new_packet(pkt, size);
memcpy(pkt->data, data, size);
..
av_packet_free(&pkt);
然后在“..”中将是您的数据包处理程序,通常调用 avcodec_send_packet()
和 avcodec_receive_frame()
.
关于video - 对编码流进行 ffmpeg 解码(作为缓冲区出现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72726739/