FFmpeg在libavutil模块封装有获取声道布局、声道名字与声道数的API。声道布局包括:单声道、立体声道、环绕声道、5.0声道、5.1声道、7.0声道、7.1声道等。声道掩码包括:前方左边、前方右边、前方中央、低频、后方左边、后方右边、后方中央、左环绕、右环绕等。声道布局、声道数和声道名字可以互相转换。
1、声道掩码
声道掩码的宏定义位于libavutil/channel_layout.h,包括:前方左边、前方右边、前方中央、低频、后方左边、后方右边、后方中央、左前方中央、右前方中央、左侧边、右侧边、上方中央、左环绕、右环绕、左立体、右立体、下前方中央等等。具体定义如下:
#define AV_CH_FRONT_LEFT 0x00000001
#define AV_CH_FRONT_RIGHT 0x00000002
#define AV_CH_FRONT_CENTER 0x00000004
#define AV_CH_LOW_FREQUENCY 0x00000008
#define AV_CH_BACK_LEFT 0x00000010
#define AV_CH_BACK_RIGHT 0x00000020
#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040
#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080
#define AV_CH_