- 注册所有容器格式和CODEC:av_register_all()
- 打开文件:av_open_input_file()
- 从文件中提取流信息:av_find_stream_info()
- 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO
- 查找对应的解码器:avcodec_find_decoder()
- 打开编解码器:avcodec_open()
- 为解码帧分配内存:avcodec_alloc_frame()
- 不停地从码流中提取出帧数据:av_read_frame()
- 判断帧的类型,对于视频帧调用:avcodec_decode_video()
- 解码完后,释放解码器:avcodec_close()
- 关闭输入文件:av_close_input_file()
FFmpeg组成
1、libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库;
2、libavcodec:用于各种类型声音/图像编解码;
3、libavutil:包含一些公共的工具函数;
4、libswscale:用于视频场景比例缩放、色彩映射转换;
5、libpostproc:用于后期效果处理;
6、ffmpeg:是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码;
7、ffsever:是一个HTTP多媒体实时广播流服务器,支持时光平移;
8、ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
网友评论