Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在amazon S3服务器上的Concat MP3 /媒体音频文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想连接在Amazon S3服务器上上传文件.
我该怎么做

本地机器上的连接可以使用以下代码.

var fs = require('fs'),files = fs.readdirSync('./files'),clips = [],stream,currentfile,dhh = fs.createWriteStream('./concatfile.mp3');

files.forEach(function (filE) {
    clips.push(file.subString(0,6));  
});


function main() {
    if (!clips.length) {
        dhh.end("Done");
        return;
    }
    currentfile = './files/' + clips.shift() + '.mp3';
    stream = fs.createReadStream(currentfilE);
    
    stream.pipe(dhh,{end: falsE});
    stream.on("end",function() {
        main();        
    });
}


main();

解决方法

您可以通过将其分为两个步骤来实现您想要的:

在s3上操作文件

由于s3是远程文件存储,因此无法在s3服务器上运行代码以进行本地操作(如@Andrey所述).
您在代码中需要做的是获取每个输入文件,在本地处理它们并将结果上传回s3.从amazon结帐代码例:

var s3 = new AWs.S3();
var params = {Bucket: 'myBucket',Key: 'mp3-input1.mp3'};
var file = require('fs').createWriteStream('/path/to/input.mp3');
s3.getObject(params).createReadStream().pipe(filE);

在此阶段,您将运行连接代码,并将结果上传回来:

var fs = require('fs');
var zlib = require('zlib');

var body = fs.createReadStream('bigfile.mp3').pipe(zlib.createGzip());
var s3obj = new AWs.S3({params: {Bucket: 'myBucket',Key: 'myKey'}});
s3obj.upload({Body: body}).
   on('httpUploadProgress',function(evt) { console.log(evt); }).
   send(function(err,data) { console.log(err,data) });

合并两个(或更多)mp3文件

由于MP3文件包含一个指定某些信息(如比特率)的标题,因此简单地将它们连接在一起可能会引起播放问题.
见:https://stackoverflow.com/a/5364985/1265980

你想要使用一个工具.您可以使用一种方法将输入的mp3文件保存在tmp文件夹中,并执行外部程序,以更改比特率,连接文件和修复标题.
或者,您可以使用允许您使用 ffmpeg within node.js.的库

在他们的代码示例中,您可以看到他们如何将两个文件合并在节点api内.

ffmpeg('/path/to/part1.avi')
  .input('/path/to/part2.avi')
  .input('/path/to/part2.avi')
  .on('error',function(err) {
    console.log('An error occurred: ' + err.messagE);
  })
  .on('end',function() {
    console.log('Merging finished !');
  })
  .mergeToFile('/path/to/merged.avi','/path/to/tempDir');

大佬总结

以上是大佬教程为你收集整理的node.js – 在amazon S3服务器上的Concat MP3 /媒体音频文件全部内容,希望文章能够帮你解决node.js – 在amazon S3服务器上的Concat MP3 /媒体音频文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。