从 IIS 到浏览器的可导航录音数据库技术
Posted
技术标签:
【中文标题】从 IIS 到浏览器的可导航录音数据库技术【英文标题】:Tech for navigable audio recording database, from IIS to browser 【发布时间】:2015-03-14 06:51:00 【问题描述】:简而言之,我想录制演示音频,在数据库中为该音频创建时间标记,然后从网页提供该音频内容的标记导航。 什么技术(例如 HTML5 音频、RTMP)可以支持这一点?
我的要求更详细:
从浏览器快速导航到服务器存储音频中的服务器端标记点。 避免使用任何专有的客户端软件,例如 Silverlight;尽管由于渗透性,Flash 是可以接受的,而且 html5 媒体等具有前瞻性的标准也是可以接受的,只要它与最新的浏览器一起提供。 宁愿保留 30-50 分钟的音频文件不拆分,而不是在选定的标记上预先拆分;以便以后可以无缝更改标记。 希望将许可成本保持在最低水平;虽然单次购买许可的服务器端技术很好。 宁愿从 IIS 中完成大部分工作,我在这方面经验最丰富。但是,可以使用带有 Windows API 的 Adobe 等并行流媒体服务器。这是迄今为止我对解决方案的最佳猜测:
演示文稿将被压缩并存储在 mp3 文件中(但实际上,欢迎任何有关易于查找的语音录制格式的建议)。 客户端将播放单播流而不是下载文件块(尽管下面的 TBR 挑战了这一假设) HTML5 尚未准备好,因此客户端需要 Flash IIS 媒体服务不可行,因为它需要 Silverlight 才能找到可搜索的音频 该领域的领先产品,例如 Adobe Media Server 5,可能是专注于视频媒体的大型套件。我可能会找到像 Icecast 这样更专注的工具来可靠地完成我需要的工作。【问题讨论】:
Icecast 不是您要找的东西(也请不要带驼色外壳)。您不需要实时流媒体功能。您所需要的只是一个提供静态内容并满足范围请求的 Web 服务器。如何让浏览器在我不知道但希望 元素可能包含某些内容或有人写了一些内容来扩展它的文件中发出范围请求。 谢谢 TBR。已更正。关于简单地满足范围请求,我认为这还不够。 “由于‘字节库’,帧不是独立的项目,通常不能在任意帧边界上提取。” - en.wikipedia.org/wiki/MP3 此外,如果我基于对无错误文件的期望而不是实际解析文件对源文件切割点做出盲目假设,那么在回答请求时我可能会导致客户端缺陷。由于您没有指定如何创建范围请求,因此您不是基于客户端能力... 有趣的是,您应该说这是行不通的,因为这正是直播 MP3 的工作方式。加入流的客户端将从该时间点获得数据。即使通过切入帧包含一些“垃圾”或丢失前一帧中的一些数据,我见过的所有客户端软件都可以毫无问题地处理这个问题。祝你好运,我能做的就是指出这些方面。 TBR,我没说不行,我问怎么行。我还是不明白,但我感觉我让你很沮丧,所以我会求你了。 【参考方案1】:好的,我会咬的。我去寻找人们实际上是如何解决这个问题的,这就是我在评论中所说的。 Setting HTML5 audio position(它是如此接近以至于几乎让这个问题成为一个骗局)
我还发现了 2009 年的这篇不错的博客文章,其中描述了进一步的技术可能性和选项。后一部分围绕高级视频用例和 Ogg 展开,但第一部分应该适用于 。 http://gingertech.net/2009/08/19/jumping-to-time-offsets-in-videos/
【讨论】:
谢谢!这是非常有用的。我可以从中看出,我的问题的答案可能是“在 HTML5<audio><source>
标签中链接 AAC 或 MP3 文件,并使用 javascript 查找您的标记。需要支持 HTML5 音频的浏览器。任何相对当前版本的 IIS 已经支持什么你本机需要”,我应该去尝试一下。该线程中有一些强有力的证据表明它将满足我的所有需求,但是,这根本不是重复的答案。 HTML5 是我的问题的众多合理答案之一。
有趣的是,我在使用这种方法时遇到了一些严重的问题。 Chrome 和 IIS 的组合传输 .MP3 的前 2.5MB 只是为了检索元数据,这是使音频可按时间定位的必要条件(根据我的 OP 中的标记)。此外,元数据请求以 RANGE: 字节 0- 的形式发出,然后使文件和 HTTP 资源处于打开状态且未解析,从而加载了我的连接队列。只需单击几下,这种连接滥用实际上就压倒了 IIS Express 开发许可证。可能有修复,但将 RANGE 视为流式处理并不是即插即用的。以上是关于从 IIS 到浏览器的可导航录音数据库技术的主要内容,如果未能解决你的问题,请参考以下文章