Sto provando a utilizzare WebRTC per visualizzare un input video sullo schermo come feed live. Non sto cercando di fare alcuna comunicazione peer-to-peer o qualcosa del genere, basta visualizzare un feed video.WebRTC non può ricevere un feed video da un dispositivo di input USB (readyState va a finire)
Il codice che ho funziona correttamente per la mia webcam integrata per portatili, ma quando collego un dispositivo di ingresso video esterno (in questo caso una vecchia videocamera collegata tramite S-Video a un ingresso USB utilizzando un convertitore StarTech - numero di modello SVID2USB2NS) Non ho niente. Ho provato questo in Chrome e FireFox.
Entrambi i browser trovano il dispositivo video e mi offrono la scelta della mia webcam integrata o del dispositivo USB (elencato come "USB 2820" in questo caso), quindi sono a conoscenza del dispositivo in questo caso.
In Chrome, quando provo a connettermi, la richiamata "successo" della chiamata getUserMedia è chiamato, se mi .getVideoTracks() trovo il MediaStreamTrack
, e il momento della richiamata, i rendimenti MediaStreamTrack
enabled
= true
e readyState
= live
. Tuttavia non c'è alcun input video (solo un pannello video nero, e la piccola icona rossa "registrazione" nella scheda del browser Chrome non appare). Se controllo il MediaStreamTrack un secondo dopo, trovo che readyState
ora = "ended
" (sebbene abilitato sia ancora vero).
In FireFox, di nuovo, il dispositivo viene rilevato, ma qualsiasi tentativo di connettersi ad esso utilizzando getUserMedia attiva semplicemente la richiamata di errore, con un errore HARDWARE_UNAVAILABLE.
mio getUserMedia
chiamata è semplice:
navigator.getUserMedia({ audio: false, video: true }, _webRTCsuccessCallback, _webRTCerrorCallback);
e il mio successo callback è (tra cui alcuni codice di prova per verificare la MediaStreamTrack
immediatamente e un secondo dopo):
function _webRTCsuccessCallback(stream) {
window.stream = stream; // stream available to console
if (window.URL) {
_video.src = window.URL.createObjectURL(stream);
} else {
_video.src = stream;
}
var tracks = stream.getVideoTracks();
if (tracks[0]) {
console.log(tracks[0]);
setTimeout(function() { console.log(tracks[0]); }, 1000);
}
}
(dove _video è la html5 oggetto nella pagina)
versione di Firefox 31.0
Chrome versione 39.0.2171.71 m
versione del sistema operativo: Windows 7 Ultimate (6.1.7601) SP1
S-Video al convertitore USB: StarTech SVID2USB2NS (http://www.startech.com/AV/Converters/Video/USB-S-Video-Capture-Cable~SVID2USB2NS)
fotocamera Fonte: Panasonic NV- DS35B (Videocamera digitale)
Qualcuno ha qualche idea che cosa sta causando questo, e perché WebRTC non giocherà con questo dispositivo?
(in termini più generali, so che il dispositivo sta inviando un segnale video al PC, come in IE ho sviluppato un controllo ActiveX che utilizza DirectShow per ottenere il feed video, e raccoglie il feed bene - diverso la tecnologia apprezzo, ma mi dà la prova che il dispositivo è lì e l'invio di video!)
Che fotocamera e quale sistema operativo? Potrebbe essere necessario pubblicare un bug nei corrispondenti bug trackers del browser. –
@BenjaminTrent grazie - ha modificato la mia domanda per aggiungere il sistema operativo e le informazioni sulla fotocamera. Ho temuto che potesse finire con i browser tracker, ma siccome né Chrome né Firefox sembrano voler sapere, mi sono chiesto se forse fosse qualcosa che stava facendo piuttosto che un problema simile in entrambi i browser, chiunque fosse più versante in WebRTC di me potrebbe offrire qualsiasi cosa mi sia sfuggita! Per esempio. webRTC in quei browser non assomiglia a certi tipi di input, ad es. Forse PAL? – PulseLab
@PulseLab: Può confermare per favore se sono installati i driver più recenti sia per ** StarTech SVID2USB2NS ** che ** Panasonic NV-DS35B **? –