Запись Kurento Media Server без звука не работает

Я опробовал следующую демонстрацию для Kurento Media Server:

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 уже была нажата, хотя это не так.

Подробные журналы размещены здесь: https://pastebin.com/397U14uG

Я уверен, что на сервер идет какой-то поток, так как мой сервер показывает передачу данных с помощью команды ifstat.

Версия Куренто

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

person Manu    schedule 15.01.2018    source источник


Ответы (1)


Объект recorderEndpoint имеет атрибут mediaProfile, указывающий, какие данные он ожидает для записи. По умолчанию это будет аудио и видео WEBM. Когда ваши ограничения мультимедиа удаляют звук, исходящий от клиента, это заставит конечную точку записи ждать начала записи аудиопотока, и, поскольку он никогда не придет, файл останется на уровне 0 КБ. Правильный способ справиться с этим — изменить создание конечной точки рекордера в строка 112 примерно так:

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

Для справки:

person lfzawacki    schedule 26.01.2018
comment
Спасибо. Я уже заставил это работать, используя пример JAVA: github.com/Kurento/kurento-tutorial-java/tree/master/ - person Manu; 06.02.2018
comment
Сможете ли вы решить и эту проблему? groups.google.com/forum/#!topic/kurento/_KYkcWpVtb4 - person Manu; 06.02.2018
comment
Насколько я знаю, вы не можете записывать аудио в формате wav без модификации исходного кода kurento media server. - person lfzawacki; 08.02.2018