Jas*_*siu 5 streaming mp3 lossless
我正在开发能够播放目标广告的流媒体服务器.基本上听众会听到相同的音乐,但每一个,比方说,30分钟就会出现一块广告,每个听众都有自己的音乐.实现这样的流服务器带来了各种问题,这个问题就是其中之一.
服务器将以类似于Icecast的方式工作,即它将从某个流生成器通过网络读取流并将其转发给每个侦听器.当广播广告时,服务器停止从生成器获取流,从文件中读取广告并将它们插入到每个侦听器的缓冲区中,传输它们并从发生器的中继流中恢复.
当服务器从中继流切换到广播广告时,它必须连接两个MP3流(我们用MP3播放).我担心的是,简单地追加一个接一个的数据可能会产生一些可听到的伪像.可以无缝完成吗?
我已经想到了这个: - 我可以让服务器知道MP3帧,以避免同步错误. - 我正在考虑在流中的MP3帧之后从广告文件中添加MP3帧. - 由于广告是从正确编码的MP3文件中加载的,因此我避免了字节存储的问题,因为文件中的第一帧无法使用它.
但我担心的是MDCT的工作方式.听众不知道我的服务器会做什么,因此他们的MP3解码器可能会产生一些工件,因为不正确的MDCT数据会在他们下载的流中一个接一个地放置.广告文件开头的零填充是否会对此进行补偿?
你知道任何可以无缝地连接两个MP3文件而不解压缩它们的库/工具(如果可能的话,开源)吗?
你能指出任何描述MP3格式的好资源吗?我搜索了很多网,发现了很多信息,但我仍然想念整体情况.
也许你知道如果我使用像OGG/Vorbis,AAC这样的其他编解码器会更容易吗?
PS.这个问题并不重复合并mp3文件的最佳方法是什么?.mp3wrap和工具都不适合我.
如果您使用的是 Windows,则 Microsoft DirectShow API 可能是最佳选择。您应该发现它能够处理各种格式的静态和流式音频和视频(您只需要必要的编解码器,并且所有接口几乎都是相同的)。
话虽如此,不幸的是,DirectShow 的设计方式非常复杂,并且学习曲线陡峭,但如果您要在 Windows 上进行音频/视频操作,它提供的功能是无与伦比的。不过,有大量关于如何使用它的示例和教程,因此最终可能不会那么痛苦。另外,如果您使用 .NET Framework,则有一个名为DirectShow.NET的托管组件。无论你做什么,这都不是一件容易的事,除非有什么我不知道的事情。无论如何,祝你好运!