AVStream 解析
AVStream 是一个结构体
//在AVFormatContext中的流索引
iint index;
//流id,例如音频流id 视频流id等;
//解封装的时候,由libavformat模块来赋值
//加封装的时候,由用户设置,如果未设置,则用libavformat替换
int id;
//这是以前版本的时候,封装跟解码耦合在一起,先如今俩者可以分开来,使用codecpar 结构体来替代
AVCodecContext *codec;
//这是表示帧时间戳的基本时间单位(以秒为单位)
AVRational time_base;
int64_t start_time;
//解码时:流的持续时间,以流的时间为基数。如果源文件没有指定持续时间,但指定了比特率,则该值将根据比特率和文件大小进行估计。
//备注:使用该数值得出视频流的持续时间,计算方式 duration *(time_base.num/time_base.den) 秒。duration的数值有可能为空,所以一般情况下使用AVFormatContext的duration来计算时长。
int64_t duration;
//帧数
int64_t nb_frames;
//样本比特率
AVRational sample_aspect_ratio;
//平均帧速率
AVRational avg_frame_rate;
//与此流相关的编解码器参数。分别在avformat_new_stream()和avformat_free_context()中由libavformat分配和释放。
AVCodecParameters *codecpar;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术