对于我的计算课程,我正在创建一个音乐商店,我想知道是否可以使用基于Web的语言库将音频长度减少到30秒,然后将其保存在目录中并将原始文件保存在不同的目录。
答案 0 :(得分:1)
如果使用html5音频规范,则可以在文件上设置.play()的超时。这样就不需要每个音频文件的2个版本。只是一个基本的实现。其他方法也会涉及更多。
答案 1 :(得分:0)
好。我试着去聊天,并提出一些更具体的问题...... 不介意,我会猜测并给出答案。
我相信你在服务器端使用了一些类似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)
但要小心,因为黑客可能会执行injection attack执行任何代码,因此您必须调整输入数据。
祝你好运。