ffmpeg 新老接口问题及对照集锦

出处: http://bbs.rosoo.net/thread-6268-1-1.html  

     网上很多关于ffmpeg (libav)的资料都是N年以前的,而事实上ffmpeg数年来一直在“以时俱进”,因此无论是一些新手,或者号称为老手的人,有时候难免出头痛。。。。。。

为了解决大家的头痛的问题,特列一个贴子,把ffmpeg相关的一些常见的、版本的问题列举出来,供大家参考,同时也请大家一起补充。

1) 不认识guess_format.
解决:  #define guess_format  av_guess_format 
接口不变。

2) 不认识av_alloc_format_context
解决:  #define   av_alloc_format_context  avformat_alloc_output_context
接口调整。

3) 不认识CODEC_TYPE_VIDEO 和 CODEC_TYPE_AUDIO
解决:
#define CODEC_TYPE_VIDEO AVMEDIA_TYPE_VIDEO
#define CODEC_TYPE_AUDIO AVMEDIA_TYPE_AUDIO

4) 不认识audio_resample_init
解决:#define 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) img_convert()找不到

   新接口为sws_getContext(), sws_scale()

旧代码
img_convert ( (AVPicture *)frameRGB, PIX_FMT_RGB24, (AVPicture*)frame,is->video_st->codec->pix_fmt, is->video_st->codec->width, is->video_st->codec->height);

新代码

static struct SwsContext *img_convert_ctx;
 img_convert_ctx = sws_getContext (is->video_st->codec->width,
                          is->video_st->codec->height, is->video_st->codec->pix_fmt,
                          is->video_st->codec->width, is->video_st->codec->height,
                          PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
sws_scale (img_convert_ctx, frame->data, frame->linesize,0, is->video_st->codec->height, frameRGB->data, frameRGB->linesize);
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值