背景
FFmpeg作为应用最为广泛的音视频解决方案,适用范围极广,接口众多,如果是初学,很容易被众多Context晕得云里雾里,本文为小白教程,主要记录怎么讲原始音视频流封装成标准的MP4格式!
网上搜索的资料大部分都是读取其他格式文件编码成H264或者读取H264文件再封装成MP4!
举个栗子,FFmpeg的sample例子muxing.c就是读取一个gif文件,再编码成H264,然后封装成MP4,如果你只想将已有的原始音视频流封装成MP4的话,参考起来略显吃力!
所有了这个教程!封装MP4只需要三步!
第一、打开冰箱(avformat_write_header)
第二、把大象放进去(av_interleaved_write_frame)
第三、关上冰箱(av_write_trailer)
FFmpeg基础知识
此章资料全部摘自大神 雷霄骅,人生苦短,及时行乐!
FFmpeg常见的结构体
AVFormatContext:统领全局的基本结构体。主要用于处理封装格式(FLV/MKV/RMVB等)。
AVIOContext:输入输出对应的结构体,用于输入输出(读写文件,RTMP协议等)。
AVStream,AVCodecContext&#