我有一个HTML 页面,其中有两个 30 秒的音频文件 ABC.mp3 和 15 秒的 XYZ.mp3。我需要以这样的方式组合这两个文件,以便获得一个 30 秒(而不是 45 秒)的新文件 PQR.mp3,其中一个文件与另一个文件重叠/合并。任何类型的插件、javascript 等都会有所帮助,同时考虑 HTML 和 HTML5。
问问题
3989 次
1 回答
1
简单的回答:不。Javascript 和 HTML5 都没有能力做到这一点。您将需要服务器端工具来执行此操作。例如 ffmpeg 和 LAME 在 MP3 的情况下。
如果您确实需要在 HTML 基础上进行此类操作,唯一的方法是将这些程序绑定到 php 脚本或 NodeJS 服务器,然后启动作业来执行您想做的事情。不过,您必须编写 bash 脚本或 cronjobs 才能这样做。
编辑
对于nodeJS,您需要编写自己的节点服务器应用程序。然后,应用程序应该使用socketIO和node-fluent-ffmpg,它们也有蹩脚的。该应用程序可能看起来像这样
服务器:
var io = require('socket.io').listen(80);
var exec = require('child_process').exec;
io.sockets.on('connection', function (socket) {
socket.on('mergeFiles', function (data) {
var firstFile = data.firstFile;
var secondFile = data.secondFile;
//do ffmpg stuff by executing a shell script
execString = "./yourscript.sh " + firstFile + " " + secondFile
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec(execString , puts);
});
客户:
<script src="/socket.io/socket.io.js"></script>
<script>
var firstFile = ABC.mp3;
var secondFile = XYZ.mp3;
var socket = io.connect('http://localhost');
socket.emit('mergeFiles', { firstFile: firstFile, secondFile: secondFile });
</script>
于 2012-11-09T09:48:34.093 回答