参考:https://blog.csdn.net/chen495810242/article/details/32700947
1) guess_format==>av_guess_format
2) av_alloc_format_context ==> avformat_alloc_output_context
3) CODEC_TYPE_VIDEO ==>AVMEDIA_TYPE_VIDEO
CODEC_TYPE_AUDIO ==> AVMEDIA_TYPE_AUDIO
4) audio_resample_init ==> av_audio_resample_init
5) avcodec_decode_video 到 avcodec_decode_video2接口调整
旧代码:
len = avcodec_decode_video(c, (short *)outbuf, &out_size, inbuf_ptr, size);
新代码:
av_init_packet(&pkt);
pkt.data = (unsigned char*)inbuf_ptr;
pkt.size = size;
len = avcodec_decode_video2(c, &tmpFrame, &got_picture, &pkt);
6)url_fopen变成新的接口 avio_open
int avio_open(AVIOContext **s, const char *url, int flags);
7)av_write_header变成了avformat_write_header
int avformat_write_header(AVFormatContext *s, AVDictionary **options);
8)旧版宏定义:PKT_FLAG_KEY 新版宏定义:AV_PKT_FLAG_KEY
9)av_open_input_file
旧版本
if(av_open_input_file(&ffmpeg_fields.pFormatCtx, _filePath, NULL, 0, NULL) != 0)
新版本
if (avformat_open_input(&ffmpeg_fields.pFormatCtx, _filePath, NULL, NULL) != 0)
10)av_find_stream_info
旧版本
if(av_find_stream_info(ffmpeg_fields.pFormatCtx) < 0)
新版本
if (avformat_find_stream_info(ffmpeg_fields.pFormatCtx, NULL) < 0)
11)av_close_input_file
旧版本
av_close_input_file(ffmpeg_fields.pFormatCtx);
新版本
avformat_close_input(&ffmpeg_fields.pFormatCtx);
12)avcodec_open2
旧版本
if (avcodec_open(ffmpeg_video.codec_ctx, ffmpeg_video.codec) < 0)
新版本
if (avcodec_open2(ffmpeg_video.codec_ctx, ffmpeg_video.codec, NULL) < 0)
13) dump_format ==> av_dump_format
14) avcodec_alloc_context ==> avcodec_alloc_context3 //注意是3,不是2 (最近出来的)
15)URL_WRONLY ==> AVIO_FLAG_WRITE
16) CodecID ==> AVCodecID
17) av_new_stream ==> avformat_new_stream
18)avcodec_alloc_frame ==>av_frame_alloc()
19)PIX_FMT_RGB24 ==> AV_PIX_FMT_RGB24
20)PIX_FMT_YUV422P =AV_PIX_FMT_YUV422P