FFmpeg函数新老接口对照

参考: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

你可能感兴趣的:(FFmpeg函数新老接口对照)