gpt4 book ai didi

audio - Icecast 元数据提取在输出音频数据中产生伪影

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:01 25 4
gpt4 key购买 nike

我正在尝试(在 NodeJS 中):

  1. 连接到 Icecast互联网音频流。例如:http://icecast3.977music.com/comedy
  2. 解析响应 header 并提取 icy-metaint 值。
  3. 将原始音频数据写入文件,同时从音频流中提取元数据字节,以便:
    • 在元数据到达时拦截并解析元数据。
    • 不在输出文件中包含元数据字节,这样就不会因注入(inject)元数据而出现音频失真。

遵循"unofficial" Shoutcast Metadata Protocol来自 SmackFu 的页面,我已经能够做到这一点:

https://gist.github.com/e7474421dcb25e011620

基本上,我能够在预期时提取元数据(要点中包含的流转储的最开始只有 1 个元数据事件)。这部分似乎工作正常。

问题在于,输出 MP3 文件在整个文件中具有明显的音频伪影,大概是在元数据字节到达时。但是,我肯定会提取这些元数据字节并且不将它们包含在输出文件中,所以这是奇怪的部分。

上面链接中的协议(protocol)文档没有说需要对输出文件执行任何其他操作,但显然我仍然做错了一些事情。有谁知道还需要对音频流做什么?预先感谢!

最佳答案

我能够在 Node.js IRC channel 上解决这个问题。我在输出的音频字节数中出现“off by 1”错误,因此导致音频文件无效。

OP 中发布的要点已得到更正,现在可以正常工作。

这个小练习的延续被打包到 Node.JS 模块中,以从 SHOUTcast/Icecast 流中读取音频和元数据。查看node-radio-stream如果你有兴趣。

关于audio - Icecast 元数据提取在输出音频数据中产生伪影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com