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

时间:2013-10-09 22:22:10

标签: javascript php html audio web

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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命令,可以在PHP中使用shell_exec()函数。 它将执行给定的字符串并返回输出,因此,您可能需要这样:

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

但要小心,因为黑客可能会执行injection attack执行任何代码,因此您必须调整输入数据。

祝你好运。