之前尝试ffmpeg保存MP4文件没有成功 今天周末没事 尝试了下 解决这个问题了
主要是打开文件设置encoder和 发送数据时候 pts的设置
打开文件的地方:
pHandle->is_record_ready.store(false);
pHandle->record_counter = 0;
if(pHandle->out_ctx)
{
printf("pHandle->out_ctx is not null \n");
return -1;
}
AVOutputFormat *pOutFmt = nullptr;
AVCodec* codec = nullptr;
AVStream* stream = nullptr;
AVCodecContext* codec_cxt = nullptr;
ret = avformat_alloc_output_context2(&pHandle->out_ctx,NULL,"mp4",out_file);
if(ret < 0 || !pHandle->out_ctx)
{
printf("avformat_alloc_output_context2 failed ret = %d\n",ret );
return -1;
}
pOutFmt = pHandle->out_ctx->oformat;
if(pOutFmt->video_codec == AV_CODEC_ID_NONE)
{
printf("Cannot find videocodec\n");
goto ERROR;
}
codec = avcodec_find_encoder(pOutFmt->video_codec);
if(!codec){
av_log(NULL,AV_LOG_ERROR,"Can not find encoder&#