音频通道布局

3

我有一些问题希望你能回答。

我正在使用FFmpeg SDK基于ffplay.c开发一个新的视频播放器。

然而,我不理解一些概念。

什么是声道布局和音频通道?

2个回答

4
mono audio is one channel
stereo 2 channel
... additional channels are also accommodated

在每个样本的音频缓冲区中,每个通道的数据是交错的(仅适用于典型的“打包采样格式”):

第一个样本(通常为16位CD质量音频的2个字节)

two bytes ch a
two bytes ch b

第二个样例

two bytes ch a
two bytes ch b

这也包括将视频交错到数据流中...根据视频编解码器不同采用不同的方法。

以下是来自ffmpeg文档的摘录:

对于平面样本格式,每个音频通道都在单独的数据平面中,linesize是单个平面的缓冲区大小(以字节为单位)。所有数据平面的大小必须相同。对于打包样本格式,仅使用第一个数据平面,并且每个通道的样本交错。在这种情况下,linesize是1个平面的缓冲区大小(以字节为单位)。


从技术上讲,“在每个样本的音频缓冲区中,每个通道的数据是交错的”并不完全正确。这取决于样本格式。对于打包格式,每个通道的每个样本数据是交错的。但对于平面格式,每个通道在内存中是分开的。 - Lihang Li

1
通道布局可用于描述您的音频如何组织,例如单声道只有1个通道,立体声则有2个通道。您可以这样想,您听到声音的方式可能有很多来源(位置),对吧?例如前置中心、前置左侧、前置右侧等。
每个单独的通道代表一个来源,而通道布局只是通道的组合。
请参见使用ffmpeg操作音频通道获取更多详细信息 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接