首页 > 解决方案 > 流式传输网络摄像头/音频并将其保存为服务器上的文件 - Apache

问题描述

我很好奇在我的小项目中实现一个功能。

基本上,我想要的是当我转到一个特定页面时,我想开始使用我的网络摄像头录制视频和音频,并将该会话保存在我的 Apache 服务器中。现在,问题是我想将其作为数据流式传输,而不是记录它,然后将该文件发送到服务器。这样做的原因是,当我完成该页面时,我将被转移到另一个页面,我将没有时间上传整个视频。

我在一个 git 页面上找到了这个,

<?php
foreach(array('video', 'audio') as $type) {
    if (isset($_FILES["${type}-blob"])) {

        echo 'uploads/';

        $fileName = $_POST["${type}-filename"];
        $uploadDirectory = 'uploads/'.$fileName;

        if (!move_uploaded_file($_FILES["${type}-blob"]["tmp_name"], $uploadDirectory)) {
            echo(" problem moving uploaded file");
        }

        echo($fileName);
    }
}
?>

和 Javascript

var fileType = 'video'; // or "audio"
var fileName = 'ABCDEF.webm';  // or "wav"

var formData = new FormData();
formData.append(fileType + '-filename', fileName);
formData.append(fileType + '-blob', blob);

xhr('save.php', formData, function (fName) {
    window.open(location.href + fName);
});

function xhr(url, data, callback) {
    var request = new XMLHttpRequest();
    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            callback(location.href + request.responseText);
        }
    };
    request.open('POST', url);
    request.send(data);
}

但我不确定这是否是流媒体解决方案(正如我所提到的),而不是记录然后上传。

我正在使用带有一些 Javascript 的 PHP,并将 Apache 作为服务器。

标签: javascriptphpapache

解决方案


推荐阅读