【问题标题】:Address speakers of a 5.1 system directly直接向 5.1 系统的演讲者讲话
【发布时间】:2016-06-16 15:10:38
【问题描述】:

我想要一个能够直接针对 5.1 系统的扬声器的程序。也就是说,我想编写一个播放器,在我想要的确切扬声器上播放音频文件,并在整个文件中逐渐更改相应的扬声器。 这就是我想做的,但是我不知道该怎么做。是否可以使用任何高级编程语言,或者我是否需要直接与声卡/声音驱动程序交互[因为如果是这样,我需要立即放弃它]...这可能吗,有人知道吗?什么图书馆无论如何都会帮助我?

【问题讨论】:

    标签: audio driver


    【解决方案1】:

    这绝对是可能的。如果您回答几个问题,可能会得到更具体的答案。

    1) 您使用的是什么操作系统? 2)您的扬声器如何连接到计算机?通过 1 个 RCA 或 TOSLINK 连接器进行数字连接,还是通过 3 个耳机连接器使用模拟连接?

    如果您使用 3x 模拟连接,则只需使用 OpenAL Soft

    如果您使用数字连接,则需要将音频编码为环绕声压缩格式,例如 AC-3 或 DTS。在这两个 AC-3 中,可能更容易找到合适的编码器库。您可能只使用 ffmpeg (libavcodec),但请仔细检查许可是否与您的项目兼容。

    理想情况下,如果您使用数字连接,则应将 AC-3 支持添加到 OpenAL Soft,以便可以以任何一种方式使用通用 API 并使他人受益。

    此外,根据您的操作系统,可能会有更简单的操作系统特定方法。例如,如果您在 linux 上使用数字连接,您可以配置 ALSA 插件为您进行 AC-3 编码,然后使用您选择的更高级别的多通道 API,例如 Jack 或 PortAudio。

    编辑:HDMI 有点超出我的经验范围。如果您将 HDMI 视为 S/PDIF 或 TOSLINK,它应该可以正常工作,但 CPU 负载较高并且可能存在压缩伪影。但是,Google 搜索表明,在 Windows 下,正确配置 HDMI 音频驱动程序(这似乎给某些用户带来了麻烦),您应该能够将 HDMI 音频视为 6 通道音频输出。

    【讨论】:

    • 哦,抱歉,我忘了提那些事情...-我最好使用 Windows 10,但 Ubuntu 也可以...-它通过 HDMI 连接,所以数字化...。
    • 另外,在快速查看 ffmpeg 之后,它似乎不是实时的,是吗?我希望有一些实时的东西,音频文件不需要融合,但我可以选择它在哪个扬声器上播放......
    • 为此使用 ffmpeg 意味着使用作为 ffmpeg 一部分的 libavcodec。 libavcodec 能够实时压缩和解压,假设计算机可以跟上,这可能只是压缩高分辨率视频的问题。
    猜你喜欢
    • 2022-11-17
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多