一:下载:
https://github.com/wyyrepo/avilib
解压后得到如下文件:
avilib.c
avilib.h
二:测试代码:
HI_S32 SAMPLE_COMM_VENC_AVI(VENC_STREAM_S *stStream)
{
static avi_t *hAVIFile = NULL;
static char recordfish = 0x1;
int j = 0;
int len = 0;
char *pData = NULL;
if(recordfish == 0x00)
{
return HI_FAILURE;
}
if (hAVIFile == NULL)
{
hAVIFile = AVI_open_output_file("./stream_chn_yang_0.avi");
printf("[%s:%d]:[yang] AVI_open_output_file\n",__FUNCTION__,__LINE__);
AVI_set_video(hAVIFile, 1280, 720, 30, "H264");
printf("[%s:%d]:[yang] AVI_set_video\n",__FUNCTION__,__LINE__);
}
if((stStream->u32Seq % 100) == 0)
{
printf("[%s:%d]:[yang] stStream->u32Seq = %d\n",__FUNCTION__,__LINE__,stStream->u32Seq);
}
for(j = 0;j < stStream->u32PackCount;j++)
{
len = stStream->pstPack[j].u32Len - stStream->pstPack[j].u32Offset;
pData = (stStream->pstPack[j].pu8Addr + stStream->pstPack[j].u32Offset);
int keyfame = 0;
if (stStream->pstPack[j].DataType.enH264EType == H264E_NALU_ISLICE)
{
keyfame = 1;
}
AVI_write_frame(hAVIFile, pData,len,keyfame);
}
if(stStream->u32Seq > 900 && hAVIFile != NULL)
{
printf("[%s:%d]:[yang] AVI_close\n",__FUNCTION__,__LINE__);
AVI_close(hAVIFile);
hAVIFile = NULL;
recordfish = 0x00;
}
return HI_SUCCESS;
}
三:转码的avi视频播放成功;
