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
по размеру.
Я не вижу ничего особенного в журналах. Единственный журнал ошибок, который появляется при нажатии кнопки "СТОП". Он ведет себя так, как будто кнопка СТОП уже нажата, хотя это не так.
Подробные журналы размещены здесь: 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
1 ответ
Объект recordderEndpoint имеет атрибут mediaProfile, обозначающий, какой тип данных он ожидает записи. По умолчанию это будет аудио и видео WEBM. Когда ваши медиа-ограничения удаляют аудио, исходящее от клиента, это заставит RecorderEndpoint ждать, пока аудиопоток не начнет запись, и, так как он никогда не придет, файл останется на 0 КБ. Правильный способ справиться с этим - изменить создание конечной точки устройства записи в строке 112 примерно так:
{type: 'RecorderEndpoint', params: {uri : args.file_uri, mediaProfile: 'WEBM_VIDEO_ONLY'}},
Для справки: