从AVFrame中取出音频裸数据到一个buffer中

该博客介绍了如何从ffmpeg的AVFrame结构中提取AV_SAMPLE_FMT_FLTP格式、双声道的音频裸数据。在planar模式下,每个通道的数据保存在extended_data数组的不同位置,而在packed模式下,所有通道的数据交错存储。在处理过程中,需要注意音频数据的存储顺序,如LRLRLRLR的16bit数据排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      在ffmpeg,音频数据会保存在AVFrame中extended_data数组中,如果是打包模式(packed),就只用extended_data[0];如果是planar模式,则每个channel分别保存在extended_data[i]中。对于音频,只有linesize[0]有效,打包模式保存整个音频帧的buff大小,planar模式保存每个channel的buff大小。

ffmpeg中对两种模式(planar和packed)的说明(在samplefmt.h中有详细说明):   

 * For planar sample formats, each audio channel is in a separate data plane,

 * and linesize is the buffer size, in bytes, for a single plane. All data

 * planes must be the same size. For packed sample formats, only the first data

 * plane is used, and samples for each channel are interleaved. In t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值