У меня есть приложение для Android, которое отправляет поток камеры через webview через peerjs (webrtc), веб-приложение в браузере получает видео и передает его.потоковое видео с peerjs webrtc с веб-браузера Android слишком медленно
вещи работают, но видео в Интернете является слишком медленным, и изображение замирает на некоторое время до получения второго изображения ...
Есть ли способ сделать разрешение ниже? или буферизовать видео в веб-приложении? или это может быть что-то не так с моей реализацией?
Android Webview код:
initVideo = function(videoSourceValue) {
var video = document.querySelector('video');
navigator.getUserMedia({video: {optional: [{
sourceId: videoSourceValue
}]
}
},function(stream) {
video.src = window.URL.createObjectURL(stream);
$('#peerId').text("calling : " + SERVER_PEER_ID);
var mediaConnection = peer.call(SERVER_PEER_ID, stream);
mediaConnection.on('stream', function(remoteStream) {
// Show stream in some video/canvas element.
});
},function(e){
console.log('failed',e);
});
}
Веб-часть:
function getVideoStream() {
PEER.on('call', function(call) {
var mediaConnection = navigator.getUserMedia({video: true}, function(stream) {
call.answer(stream); // Answer the call with an A/V stream.
call.on('stream', onReceiveStream);
}, function(err) {
console.log('Failed to get local stream' ,err);
});
});
}
function onReceiveStream(stream){
console.log('received stream');
$('video').prop('src',window.URL.createObjectURL(stream));
}
Благодаря
Update 1
Я попытался добавить {reliable : true}
, все еще имея ту же проблему.
Я также отправляю данные о местоположении на сервер, и кажется, что видеопотоки и данные о местоположении периодически отправляются (диаграмма в Интернете показывает скорость и видео перемещение одновременно), но частота кадров слишком медленно.
Честно говоря, я бы просто предложил отойти от веб-представления и пойти с родным (у вас есть гораздо больше контроля таким образом). Я знаю, что на самом деле это не ответ :(Вы также можете попробовать установить параметры видеопотока в коде веб-просмотра, не уверен, что это займет или нет. –
Я открыт для использования родного андроида, я просто обнаружил, что это было намного сложнее (в Интернете я просто использую peerjs), если у вас есть ссылка или библиотека для простой потоковой передачи видео через андроид, это было бы идеально. –
Вы хотите сделать 2-х разовый вызов или односторонний вызов достаточно? В Интернете (я предполагаю, хром), можете ли вы перейти к chrome: // webrtc-internals и вставить статистику, которую вы получаете на входящие и исходящие потоки видео? Позвольте запуску на несколько минут. – manishg