在服务器上保存Video.js录像机视频

问题描述 投票:0回答:1

我正在尝试保存通过Video.js录制的视频以保存在服务器上,下面是我的代码

 <script>
    var player = videojs("myVideo",
    {
        controls: true,
        width: 320,
        height: 240,
        plugins: {
            record: {
                audio: true,
                video: true,
                maxLength: 41,
                debug: true
            }
        }
    });

    player.on('startRecord', function()
    {
        console.log('started recording!');
    });
    player.on('finishRecord', function()
    {
         console.log('finished recording: ', player.recordedData);


    });

function uploadFunction()
{
 **//WRITE CODE TO SAVE  player.recordedData.video in specified folder//**
}   
</script>

现场实施:https://www.propertybihar.com/neo/videxp1/index.html

我正在经历一个先前提出的问题,dint为我工作How can javascript upload a blob?

html5 webrtc video.js
1个回答
1
投票

如果你向下滚动到qazxsw poi,你会看到这个代码片段可以做你想要的,除了一个流媒体应用程序:

"Upload" section on the README

这是为了连续上传数据而配置的,但我发现我必须对自己的设置进行一些更改:

  • 在带有VideoJS 6.7.3和VideoJS-Record 2.1.2的Chrome 64上,似乎var segmentNumber = 0; player.on('timestamp', function() { if (player.recordedData && player.recordedData.length > 0) { var binaryData = player.recordedData[player.recordedData.length - 1]; segmentNumber++; var formData = new FormData(); formData.append('SegmentNumber', segmentNumber); formData.append('Data', binaryData); $.ajax({ url: '/api/Test', method: 'POST', data: formData, cache: false, processData: false, contentType: false, success: function (res) { console.log("segment: " + segmentNumber); } }); } }); 不是一个数组而只是一个blob。
  • 我想在特定时间上传视频,而不是流媒体,所以我自己触发上传。

结果,我的上传代码看起来像这样:

player.recordedData

如果我不这样做,检查要上传的现有数据总是失败。我还手动触发此代码,而不是将其附加到if (player.recordedData) { var binaryData = player.recordedData.video; // ... Rest of that FormData and $.ajax snippet from previous snippet } 对象的“timestamp”事件。当然,您需要具有接受此上载的服务器端代码。

© www.soinside.com 2019 - 2024. All rights reserved.