我使用 ffmpeg 的 avcodec 从我的 C++ 应用程序中的音乐文件中检索原始音频样本。对于我测试的文件,这些文件样本的字节序似乎是小字节序,但我想知道对于我尝试解码的所有文件是否总是如此(即来自 ffmpeg 的实现或至少它的体系结构 -具体是因为我的计算机的体系结构使用小字节序)。如果没有,我认为这将取决于特定文件的编码格式。在这种情况下,我如何检查我正在解码的每个文件适用哪种字节序?我在文档中找不到任何相关信息。
在内部,ffmpeg 始终对音频样本使用本机字节序,因为它可以更轻松地对数据执行各种操作(请参阅libavutil/samplefmt.h
提交有关此事的一些文件);编解码器的任务是根据文件格式的规定在适当的字节顺序之间进行转换。举一个简单的例子:有一系列简单的音频编解码器,用于读取/写入原始样本,称为pcm_*
;例如有pcm_s16le
and pcm_s16be
。关于小端架构pcm_s16le
将不进行任何转换pcm_s16be
在解码/编码数据时将交换字节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)