在AVFrame中计算音视频数据大小

简介: 在AVFrame中计算音视频数据大小

AVFrame* frame;

视频:

如果是packet模式

frame->linesize[0] x frame->width

如果是planner模式

(frame->linesize[0] + frame->linesize[1] + frame->linesize[2]) x frame->width


音频:

如果是packet模式

frame->linesize[0] x frame->channels

如果是planner模式

(frame->linesize[0] + frame->linesize[1]) x frame->channels

值得注意的是,frame->linesize[0]并不是代表frame->data[0]实际的字节数,只要用av_frame_get_buffer给frame->data分配好内存后,frame->linesize[0]已经被赋于一个确切的值。


注意以上两种算法都可能有字节补齐,这部分之前的文章有提到过,下面提供另外一种用格式的计算方式:

视频:

yuv444格式

frame->width x frame->height x 3

yuv422

frame->width x frame->height x 2

yuv420

frame->widht x frame->height x 1.5


音频:

16位的位深

frame->nb_samples x frame->channels x 16 / 2

32位的位深

frame->nb_samples x frame->channels x 32 / 2


相关文章:YUV的plannar,packet及semi-planar格式及RGB


image.png

相关文章
|
6月前
|
编解码 算法 vr&ar
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(二)
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换
232 1
|
6月前
|
存储 编解码 算法
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(一)
深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换
457 1
|
5月前
|
存储 编解码
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
《FFmpeg开发实战》书中介绍了音视频编码历史,重点讲述H.264的成功在于其分为视频编码层和网络抽象层。H.264帧类型包括SPS(序列参数集,含视频规格参数),PPS(图像参数集,含编码参数)和IDR帧(立即解码刷新,关键帧)。SPS用于计算视频宽高和帧率,PPS存储编码设置,IDR帧则标志新的解码序列。书中还配以图片展示各帧结构详情,完整内容可参考相关书籍。
223 7
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
|
6月前
|
存储 编解码 算法
音视频学习之基础概念整理(rgb/yuv,pcm,采样频率,帧率,码率,i帧p帧b帧,dts/pts)
音视频学习之基础概念整理(rgb/yuv,pcm,采样频率,帧率,码率,i帧p帧b帧,dts/pts)
148 0
|
6月前
|
数据挖掘
SPS简单对应分析
SPS简单对应分析
82 0
|
存储 Cloud Native Linux
音视频 ffmpeg命令提取PCM数据
音视频 ffmpeg命令提取PCM数据
|
编解码 监控 Serverless
基于函数计算实现音视频转码
本文为您介绍如何通过基于函数计算服务、Serverless工作流、对象存储OSS、日志服务SLS、专有网络VPC和文件存储NAS服务,实现音视频转码。
|
编解码
全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据转换为YUV420P
全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据转换为YUV420P
220 0
|
存储 SQL 数据库
从海康摄像机上读取RTSP视频流并存储当前帧到本地
从海康摄像机上读取RTSP视频流并存储当前帧到本地
2505 0
|
存储 缓存 内存技术
音视频系列四:ffmpeg之获取音视频帧数据
音视频系列四:ffmpeg之获取音视频帧数据
621 0
音视频系列四:ffmpeg之获取音视频帧数据