1、不同的pcm格式都占几个byte
这点我么从ffmpeg的源码中查看
enum AVSampleFormat {
AV_SAMPLE_FMT_NONE = -1,
AV_SAMPLE_FMT_U8, ///< unsigned 8 bits
AV_SAMPLE_FMT_S16, ///< signed 16 bits
AV_SAMPLE_FMT_S32, ///< signed 32 bits
AV_SAMPLE_FMT_FLT, ///< float
AV_SAMPLE_FMT_DBL, ///< double
AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar
AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar
AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar
AV_SAMPLE_FMT_FLTP, ///< float, planar
AV_SAMPLE_FMT_DBLP, ///< double, planar
AV_SAMPLE_FMT_S64, ///< signed 64 bits
AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar
AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically
};
2、Pcm的格式占的位深和系统有关吗(32位和64位)?
无关
3、Pcm和交叉模式(packet)和平铺模式(planer)?
a、packed: 即不同声道的数据时交织在一起的,如某个audio有2个声道,采用packed方式时,先取第一个通道的一个位深(8、16、32),再取第二个通道的一个位深(8、16、32),如此交织在一起行成一帧音频数据.例子:LRLRLR
b、planar:即不同的声道是像平面一样展开,仍然以2通道的声音举例,即一帧数据采用先存储第一个通道的所有数据,然后紧接着存储第二个通道的所有数据,如此形成一帧音频数据。LLLLRRRR
4、ffmpeg如何音频提取?
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
-i 输入格式
-vn 忽略视频
-ar 采样率
-ac 声道数
-f s16le
-f的参数都有哪些呢?
{ AV_SAMPLE_FMT_U8, "u8", "u8" },
{ AV_SAMPLE_FMT_S16, "s16be", "s16le" },
{ AV_SAMPLE_FMT_S32, "s32be", "s32le" },
{ AV_SAMPLE_FMT_FLT, "f32be", "f32le" },
{ AV_SAMPLE_FMT_DBL, "f64be", "f64le" },
目前没有找到怎么提出为planer数据的format