Audio ffmpeg使用node.js和ionicframework传输多个单一音频文件

Audio ffmpeg使用node.js和ionicframework传输多个单一音频文件,audio,ffmpeg,streaming,ionic-framework,Audio,Ffmpeg,Streaming,Ionic Framework,我正在尝试制作可以播放音频文件的移动应用程序,但是,音频文件很大,超过100 mb,我不想将此文件保存到设备中,我想将此文件的流保存到浏览器中 我正在使用ionicframework和phonegap插件构建一个原型这是我的github项目: 我的服务器在node.js中,因此我的第一个意图是将node.js中的音频文件流式传输到音频标记,类似于这样: app.get('/record/:userId/:playListId/:recordName',function(req,res){

我正在尝试制作可以播放音频文件的移动应用程序,但是,音频文件很大,超过100 mb,我不想将此文件保存到设备中,我想将此文件的流保存到浏览器中

我正在使用ionicframework和phonegap插件构建一个原型这是我的github项目: 我的服务器在node.js中,因此我的第一个意图是将node.js中的音频文件流式传输到音频标记,类似于这样:

app.get('/record/:userId/:playListId/:recordName',function(req,res){

    var userId = req.params.userId;
    var playListId = req.params.playListId;
    var recordName = req.params.recordName;
    if(!userId || !playListId || !recordName){
        res.end();
        return;
    }

    var path = "./records/"+recordName;

    if (!params.fs.existsSync(path)) {
        res.end();
         return;
    }

    res.setHeader("content-type", "audio/mpeg");
    var stream = params.fs.createReadStream(path, { bufferSize: 64 * 1024 });
    stream.pipe(res);
}
在爱奥尼亚html中,音频标签:

<audio controls preload="none" type="audio/mpeg" autoplay> 
<source ng-src="{{audioPlay | trustAsResourceUrl}}" />
</audio>
此命令将音频文件test.mp3发送到提要,如果您访问url:http://IP:PORT/test.mp3 你可以听但是,这是我的大问题…

我的问题是:

  • ffmpeg将文件发送到提要,当进程完成时,如果您可以尝试访问该url,您将无法侦听任何内容,并且url仍在加载中

  • 支持用户选择要侦听的文件,以及如何将特定文件流式传输给特定用户,而不更改所有用户的流。我支持每个用户需要一个提要

  • 存在将流发送到node.js的方法,node.js使用正确的编解码器和其他东西将流发送到应用程序

  • 如果ffmpeg不是最好的方式,它是什么

    谢谢。

    我发现了这个:我想这可能是一个解决方案:ffmpeg('/recordName').output('recordName').output(流);
    Port 8090
    BindAddress 0.0.0.0
    MaxHTTPConnections 2000
    MaxClients 1000
    MaxBandwidth 1000
    CustomLog -
    
    <Feed feed1.ffm>
            File /tmp/feed1.ffm
            FileMaxSize 200K
            ACL allow 127.0.0.1
    </Feed>
    
    <Stream status.html>
            Format status
            ACL allow 127.0.0.1
            ACL allow localhost
            ACL allow 192.168.0.0 192.168.255.255
    </Stream>
    
    <Stream test.mp3>
        Feed feed1.ffm
        Format mp2
        AudioCodec libmp3lame
        AudioBitRate 128
        AudioChannels 1
        AudioSampleRate 44100
        NoVideo
    </Stream>
    
    ffmpeg test.mp3 http://IP:PORT/feed1.ffm