FFMPEG HTTP协议在第一个数据包后关闭

时间:2019-08-27 07:21:53

标签: http ffmpeg streaming

我正在尝试通过HTTP协议从网络摄像头向FFMPEG发送实时视频流。但是,在发送第一个数据包后,FFMPEG关闭,但确实输出了可完全播放的视频。是我的意图。

仔细阅读该协议的文档后,我认为mulitiple_requests可以阻止此行为,而实际上并没有。在网上搜索了几个小时后,找不到适合我的情况的示例。即通过HTTP接收网络流。

在客户端运行的代码:

var xhttp=new XMLHttpRequest;

if (navigator.mediaDevices) {

    var constraints = { audio: true, video: true };

    navigator.mediaDevices.getUserMedia(constraints)
      .then(function(stream) {
        var mediaRecorder = new MediaRecorder(stream);
        m = mediaRecorder;
        m.start();
        m.ondataavailable=e=>{
          xhttp.open("POST","http://localhost:8080");
          xhttp.send(e.data);
        }
        setInterval(function(){
          m.requestData();
        },2000);
      }).catch(function(error) {
        console.log(error.message);
      });
}

到目前为止我尝试过的FFMPEG命令:

ffmpeg -listen 1 -multiple_requests -i http://localhost:8080 file.webm

也许FFMPEG无法做到这一点?如果是这种情况,那么看来唯一的解决方法是将此命令放入循环中,并始终追加到输出中。

0 个答案:

没有答案
相关问题