我正在构建一个应用程序,允许经过身份验证的用户使用Web浏览器将MP3音频文件上传到服务器,用于在网络上分发音频。音频文件需要使用特定比特率(32Kbps或更少),以确保有效地使用带宽,以及批准的采样率(22.050或44.100),以最大限度地提高兼容性。使用服务器端脚本而不是在上传后验证这些要求,而不是验证这些要求,而是希望使用HTML5 FILEREADER在上载之前确定此信息。如果浏览器检测到无效的比特率和/或采样率,则可以向用户建议用户,并且可以阻止上载尝试,直到对音频文件进行必要的修订。

这可能使用HTML5吗?请注意,问题在于HTML5,而不是我的应用方法。 HTML5可以检测到MP3音频文件的采样率和/或比特率吗?

fyi注意:我正在使用ftp java applet来执行上传。将applet设置为自动将用户转发到我在成功上传后选择的URL。这将沉重的升降在客户端上,而不是在服务器上。它也是必要的,因为每个上传文件的最终目的地是不同的;它们可以在不同的服务器和不同的域中,可能在服务器上支持不同的脚本语言。任何一个服务器都会快速超过其存储空间,否则,或者如果服务器端脚本进行了FTP传输,则服务器的性能将迅速降低作为单一的故障。因此,对于我的应用程序,在多个服务器和多个域上存储上传的音频文件,必须在客户端进行比特率和采样率的验证。

有帮助吗?

解决方案

您可以使用Finereader API和JavaScript构建的音频编解码器从音频文件中提取此信息。

为纯JS编解码器提供基本代码的一个库是aurora.js - 然后实际编解码器代码构建在它之上

https://github.com/audiocogs/aurora.js/wiki/已知使用

自然浏览器必须支持FILEREADER API。

我不明白您的用例为什么需要Java applet或ftp。如果使用Async Badckend(如Node.js,Python Tworded)和可伸缩存储(Amazon S3)正确地完成了多个大文件,则HTTP上载对多个大文件工作正常。类似用例正在调整传入图像的大小,这远远超过从文件中提取音频元数据。客户端的唯一好处是通过不如此技术上感知用户减少不必要的上传数量。

其他提示

给出任何用户可以更改脚本/标记以绕过此甚至重新目的,我甚至不会考虑它。

如果有人可以用一些HTML / JavaScript的知识更改验证脚本,请不要使用HTML / JavaScript。通过在服务器上验证,更容易确保验证并验证并正确验证。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top