2

我为 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不变。

我在日志中没有看到任何特别之处。出现的唯一错误日志是在按下“STOP”按钮时。它的行为就像 STOP 按钮已经被按下,即使它不是。

详细日志放在这里: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
4

1 回答 1

3

recorderEndpoint 对象有一个 mediaProfile 属性,表示它正在等待记录哪种数据。默认情况下,它将是 WEBM 音频和视频。当您的媒体约束删除来自客户端的音频时,它会使 recorderEndpoint 等待音频流开始录制,并且由于它永远不会出现,因此文件将保持在 0kb。处理此问题的正确方法是将第 112 行中记录器端点的创建修改为如下所示:

{type: 'RecorderEndpoint', params: {uri : args.file_uri, mediaProfile: 'WEBM_VIDEO_ONLY'}},

以供参考:

于 2018-01-26T16:13:44.387 回答