【问题标题】:how can I decode webm file to raw pcm?如何将 webm 文件解码为原始 pcm?
【发布时间】:2020-01-02 05:13:06
【问题描述】:

整个过程如下。 客户端以某种格式(webm 或 wav)录制一段持续时间(例如,5 秒)的声音 然后它使用 websocket 将其发送到服务器。

服务器收到几个数据包(每个数据包大小为4096字节),每个数据包都被发送到opus解码器。 但 opus 解码器返回无效数据包错误。

服务器在 ubuntu 中使用 c++(使用 libwebsocket 和 libopus 库)编码。

谁能帮我怎么办? 一般程序或一些示例代码都可以 很难找到信息或社区。​​p>

谢谢

【问题讨论】:

    标签: c++ voice webm opus


    【解决方案1】:

    opus 解码器可能需要一个 Ogg Opus 容器文件。如果您使用 WebM,您可以提取编码的音频页面并将它们传递给不依赖于 Ogg 容器的原始 Opus 解码器。您还可以看到ffmpeg 项目如何将 WebM Opus 文件解码为 PCM

    客户端可以发送 Ogg Opus 文件而不是 WebM Opus 文件吗?有一个用 C 编写的基于块的解码器,可以非常快速地解码 Ogg Opus 文件。它适用于 WebAssembly,但 C 代码不依赖于 WASM。见opus_chunk_decoder.c:

    https://github.com/AnthumChris/opus-stream-decoder/tree/master/src

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2013-06-12
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      相关资源
      最近更新 更多