2

我有一个HTML 页面,其中有两个 30 秒的音频文件 ABC.mp3 和 15 秒的 XYZ.mp3。我需要以这样的方式组合这两个文件,以便获得一个 30 秒(而不是 45 秒)的新文件 PQR.mp3,其中一个文件与另一个文件重叠/合并。任何类型的插件、javascript 等都会有所帮助,同时考虑 HTML 和 HTML5。

4

1 回答 1

1

简单的回答:不。Javascript 和 HTML5 都没有能力做到这一点。您将需要服务器端工具来执行此操作。例如 ffmpeg 和 LAME 在 MP3 的情况下。

如果您确实需要在 HTML 基础上进行此类操作,唯一的方法是将这些程序绑定到 php 脚本或 NodeJS 服务器,然后启动作业来执行您想做的事情。不过,您必须编写 bash 脚本或 cronjobs 才能这样做。

编辑

对于nodeJS,您需要编写自己的节点服务器应用程序。然后,应用程序应该使用socketIOnode-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 回答