我尝试了 Kurento 媒体服务器的以下演示:
https://github.com/Kurento/kurento-tutorial-js/tree/master/kurento-recorder
默认演示运行良好。但是,当我更改 index.js
以使用 audio: false
进行录制时,我开始遇到问题。
我仅在 index.js
代码中进行了以下更改:
var mediaConstraints = {
audio: false,
video: {
width: 320,
framerate: 15
}
};
var options = {
localVideo: videoInput,
remoteVideo: videoOutput,
mediaConstraints: mediaConstraints
};
如果我使用 audio: true
运行代码,则在服务器上创建的录音文件是正确的。
但是,使用 audio: false
时,录音文件的大小始终为 0KB
。
我在日志中没有看到任何特别的内容。唯一的错误日志是在按下“停止”按钮时出现的。它的行为就像已按下“停止”按钮,尽管实际上并未按下。
详细日志放在这里:https://pastebin.com/397U14uG
我确信某些流正在传入服务器,因为我的服务器确实使用 ifstat
命令显示数据传输。
Kurento版本
root@ip-10-0-0-49:/var/log/kurento-media-server# kurento-media-server -v
libdc1394 error: Failed to initialize libdc1394
Version: 6.6.2
Found modules:
Module: 'core' version '6.6.3'
Module: 'elements' version '6.6.3'
Module: 'filters' version '6.6.2'
Ubuntu版本
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
最佳答案
recorderEndpoint 对象有一个 mediaProfile 属性,表示它正在等待记录哪种数据。默认情况下,它将是 WEBM 音频和视频。当您的媒体限制删除来自客户端的音频时,它将使 recorderEndpoint 等待音频流开始录制,并且由于它永远不会到来,因此文件将保持在 0kb。处理这个问题的正确方法是修改line 112中记录器端点的创建像这样的事情:
{type: 'RecorderEndpoint', params: {uri : args.file_uri, mediaProfile: 'WEBM_VIDEO_ONLY'}},
供引用:
关于javascript - Kurento 媒体服务器在没有音频的情况下进行录制无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48264130/