初始化部分函数
1、初始化所有封装和解封装 flv mp4 mov mp3
av_register_all();
2、初始化网络库
avformat_network_init();
open部分
打开输入设备
int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options);
获取封装视频信息
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);
打印视频详细信息
void av_dump_format(AVFormatContext *ic,
int index,
const char *url,
int is_output);
例子:av_dump_format(ictx, 0, inUrl, 0);// 第一个0 全部信息,第二个0表示是输入 还是 输出
创建输出上下文
int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
const char *format_name, const char *filename);
初始化编解码
AVCodec *avcodec_find_decoder(enum AVCodecID id);
AVCodec *avcodec_find_decoder_by_name(const char *name);
例子:AVCodec *codec = avcodec_find_decoder(ictx->streams[i]->codecpar->codec_id);
赋值解码器的上下文参数信息
int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src);
例子:
re = avcodec_parameters_copy(out->codecpar, ictx->streams[i]->codecpar);
创建输出流
AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c);