- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个能够播放有针对性的广告的流媒体服务器。基本上听众会听到相同的音乐,但每隔 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/
我有一些简单的 AVFoundation 代码可以将一堆四秒长的 mp4 文件连接在一起,如下所示: func compose(parts inParts: [Part], progress inPr
我构建了一个具有“步骤”的进度条,这些步骤由一个栏 (div) 连接。如图所示,我需要让横杆无缝地加入到每个“步骤”中。有没有办法做到这一点?例如。通过 ::before 和 ::after,而不引入
我是一名优秀的程序员,十分优秀!