0

For my computing coursework I am making a music store and I was wondering if it was possible to use a library for a web based language to cut audio length to 30 seconds then save it in a directory and keep the original file in a different directory.

4

2 回答 2

1

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

于 2013-10-09T22:39:44.233 回答
0

好的。我试着去聊天,问一些更具体的问题……别介意,我会试着猜测并给出答案。

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

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

为此,您可以使用一个非常强大的实用程序FFMpeghttp ://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 命令,您可以使用shell_exec()PHP 中的函数。它将执行给定的字符串并返回输出,所以,你可能想要这个:

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

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

祝你好运。

于 2013-10-09T22:59:14.177 回答