初始化部分函数
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);
音视频编解码与FFmpeg实践
本文详细介绍音视频编解码基础知识,包括初始化函数、网络库、输入输出设备管理、流信息获取及编解码器配置。通过具体函数如av_register_all(), avformat_open_input(), av_dump_format()等,展示FFmpeg核心操作流程。
1623

被折叠的 条评论
为什么被折叠?



