libopus 在 Windows 和 Linux 上产生不同的结果

问题描述 投票:0回答:1

我正在使用 libopus 将

pcm
输入文件编码为
bit
比特流。这个过程非常平凡:

  1. 创建编码器:调用
    opus_encoder_create
  2. 通过读取特定帧大小的块来循环输入
    pcm
    文件(二进制模式)并使用
    opus_encode
  3. 对它们进行编码
  4. 将编码输出逐块写入比特流文件

因为我控制以下所有参数:

  • 采样率(从调用到
    opus_encoder_create
  • 语音频道(从通话到
    opus_encoder_create
  • 应用类型(从调用到
    opus_encoder_create
  • 比特率(从通话到
    opus_encoder_ctl
  • 框架尺寸

我想知道为什么输出(生成的二进制文件)在Linux(clang和Ubuntu)和Windows(VS2019上的clang或cl)上不同:

  • 我应该考虑更多的编码器参数吗?
  • 是否存在阻碍 libopus 跨平台表现一致的内在差异?
  • 是否有已知的工具集可以帮助我检查我的代码?目前,我使用 ctl 调用和 GET_BITRATE 等来检索已应用于编码器的设置
audio audio-streaming opus
1个回答
0
投票

复杂性是我在该列表中没有看到的一个参数。根据我的经验,它确实会影响输出。

© www.soinside.com 2019 - 2024. All rights reserved.