是否可以使用基于 Web 的编程剪切音频文件


is it possible to cut audio files with web-based programming

对于我的计算课程,我正在制作一个音乐商店,我想知道是否可以使用基于 Web 的语言库将音频长度缩短到 30 秒,然后将其保存在目录中并将原始文件保存在不同的目录中。

如果使用 html5 音频规范,您可以在文件上为 .play(( 设置超时。 这样就不需要每个音频文件的 2 个版本。 只是一个基本的实现。其他方法将涉及更多。

好的。我试图移动聊天并提出一些更具体的问题......别介意,我会试着猜测并给出答案。

我相信你在服务器端使用了一些类似Unix/linux的操作系统和PHP。所以。用户管理员通过HTML表单上传音频文件,服务器端的脚本将其放入文件夹中,例如/www/full/Beatles-Yesterday.flac

因此,您必须制作一个较短的版本并将其放在公共目录中: /www/htdocs/audio/Beatles-Yesterday-Demo.mp3 .

为此,您可以使用非常强大的实用程序FFMpeg: http://www.ffmpeg.org/

它可以转码,剪辑,拆分等多媒体文件。安装它并输入终端ffmpeg --help - 您可能会注意到执行该操作所需的密钥。例如,您可以在 flac 和 mp3 之间进行转码(以提供质量较差的演示(并将其剪辑到 30 秒:

ffmpeg -ss 0 -i /www/full/Beatles-Yesterday.flac -t 30 /www/htdocs/audio/Beatles-Yesterday-Demo.mp3

有关更多信息,请参阅手册。

要执行外部 shell 命令,您可以在 PHP 中使用shell_exec()函数。它将执行给定的字符串并返回输出,因此,您可能需要:

shell_exec("ffmpeg -ss 0 -i /www/full/".$$INPUT_FILE." -t 30 /www/htdocs/audio/".$$OUTPUT_FILE)

但要小心,因为这种方式黑客可能会执行注入攻击来执行任何代码,因此您必须审核输入数据。

祝你好运。