Closed nulijiabei closed 4 years ago
你有没有试过直接使用rtsp流解码, ffmpeg 直接解码h264文件没试过这种用法
按理说, ffmpeg 从rtsp拉码流, avpacket 给到mpp mpp 解码 264packet 到yuv数据帧
感谢,找到一个解决办法就是把 AVC1 转 H264 ...
//is video stream
const char start_code[4] = { 0, 0, 0, 1 };
if(memcmp(start_code, avpkt->data, 4) != 0)
{//is avc1 code, have no start code of H264
int len = 0;
uint8_t *p = avpkt->data;
do
{ //add start_code for each NAL, one frame may have multi NALs.
len = ntohl(*((long*)p));
memcpy(p, start_code, 4);
p += 4;
p += len;
if(p >= avpkt->data + avpkt->size)
{
break;
}
} while (1);
}
start_code
我用ffmpeg拉流,mpp解码,rtsp的码流格式还是h264,但是frame还是NULL。
在 orange pi 4 (rk3399) 主板上面使用您的 ffmpeg_rtsp_mpp 解码本地视频文件 frame 为空
使用 mpi_dec_test -i /root/test.h264 测试是可以解码的
修改您代码 main.c 中如下 ...
视频格式
结果 frame 输出均为 NULL,然后 ret 确是 MPP_OK