版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangpengzp/article/details/88927269
AVFormatContext结构体
AVIOContext *pb; 自定义读写格式时,从内存中度,就要看这个结构体,会用到他。
char filename[1024]; 视频的url,方便断开重连
unsigned int nb_streams
AVStream **stream;音频或者视频的信息,如宽高、帧率。时长。里面时长,但时间基数不一样,且音频和视频的时间基数也不一定相同。
int64_t duration;总长度,duration* AV_TIME_BASE 表示多长时间(AV_TIME_BASE 表示一秒钟有多少个单位)。不一定能获取到。因为有时候不包含文件头,因此这个时候需要解码一些视频流 才可以得到,然后存入AVFormatContext, 然后来读取。如下
re = avformat_find_stream_info(ic, 0);
LOGW("duration = %lld nb_streang = %d!",ic->duration, ic->nb_streams);
int64_t bit_rate 表示一秒钟bit的大小
void avformat_close_input(AVFormatContext **s): 关闭输入流