gpt4 book ai didi

streaming - 如何无缝连接 MP3 流?

转载 作者:行者123 更新时间:2023-12-04 20:25:56 25 4
gpt4 key购买 nike

我正在开发一个能够播放有针对性的广告的流媒体服务器。基本上听众会听到相同的音乐,但每隔 30 分钟就会出现一个广告块,每个听众都有自己的块。实现这样的流媒体服务器会带来各种问题,这个问题就是其中之一。

服务器将以类似于 Icecast 的方式工作,即它将通过网络从某个流生成器读取流并将其中继到每个监听器。当需要广播广告时,服务器停止从生成器获取流,从文件中读取广告并将它们插入到每个监听器的缓冲区中,传输它们并继续从生成器中继流。

当服务器从中继流切换到广播广告时,它必须连接两个 MP3 流(我们在 MP3 中广播)。我担心的是,简单地一个接一个地附加数据可能会产生一些可听的伪影。可以无缝完成吗?

我已经想通了:
- 我可以让服务器知道 MP3 帧以避免同步错误。
- 我正在考虑在来自流的 MP3 帧之后附加来自广告文件的 MP3 帧。
- 由于广告是从正确编码的 MP3 文件中加载的,我绕过了字节存储的问题,因为文件的第一帧不能使用它。

但我担心的是 MDCT 的工作方式。听众不知道我的服务器会做什么,所以他们的 MP3 解码器可能会产生一些伪影,因为不正确的 MDCT 数据将一个接一个地放置在他们下载的流中。广告文件开头的零填充会对此进行补偿吗?

您是否知道可以无缝连接两个 MP3 文件而无需解压缩它们的任何库/工具(如果可能,请开源)?

你能指出任何描述 MP3 格式的好资源吗?我在互联网上搜索了很多,找到了很多信息,但我仍然错过了整体情况。

也许您知道如果我使用其他编解码器(如 OGG/Vorbis、AAC)会更容易?

附注。此问题与 What is the best way to merge mp3 files? 不重复. mp3wrap 和类似的工具都不是我的选择。

最佳答案

我相信 MP3 可以通过简单地连接文件来合并。在一些快速测试( cat file1.mp3 file2.mp3 > merged.mp3; mplayer merged.mp3 )中,它似乎按预期工作。从 Web 服务器流式传输可能也能正常工作。

你将如何处理当前输入文件的切换?您可以简单地将广告视为播放的短轨道。

关于streaming - 如何无缝连接 MP3 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875421/

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