getUserMedia() video-Größe, die in Firefox & Chrome unterscheidet
Ich bin mit getUserMedia()
, und bei der Umsetzung von Vorgaben (siehe unten) Sie arbeiten nur in Chrome und nicht Mozilla. Die Größe im mozilla immer angezeigt wird gestreckt und endet größer als die, die in chome.
var vid_constraints = {
mandatory: {
maxHeight: 180,
maxWidth: 320
}
}
var constraints = { audio: false, video: vid_constraints };
navigator.getUserMedia(constraints, successCallback, errorCallback);
Nach der Lektüre einige, es scheint, dass MozGetUserMedia()
nicht unterstützt Auflösung Einschränkungen. Gibt es eine Möglichkeit, die Anzeige der video -, die sicherstellt, dass es die gleiche Größe/res in Firefox und Chrome?
Dank
Bearbeiten
Habe ich geändert, das Skript, um Schnappschüsse aufzunehmen. Ich habe die gesicherten Schnappschüsse in der Moz und in Chrome - das Ergebnis ist das, was folgt:
(Links = Chrome, rechts = Mozilla)
Dachte, dieser kann klären das problem. Es sieht aus wie das Seitenverhältnis.
Bearbeiten (2)
Ja - das Seitenverhältnis für die chrome-16:9, während für die Moz mit 4:3. Wie kann ich ändern das?
- Welche version von Firefox?
- Firefox 33.0 auf Mac OS X 10.9.5
- haben Sie versucht, die Einstellung für das video-element die Höhe und Breite
- Ja. Es ändert nur den gesamten Bereich der video-element. Das video ist es selbst einfach skaliert und innen. (ohne änderung der Proportionen)
- look at die Antwort in dieser Frage : stackoverflow.com/questions/17502205/webrtc-resolution-limit es scheint, es ist ein firefox-fehlende Funktionen
- Ja, ich dachte, dies sei der Fall. Aber ich dachte, es wäre möglich, das Bild verzerren, zu entsprechen, die von Chrome. Irgendwelche Ideen auf, wie dies zu tun? (Ich hatte aufgehört zu arbeiten auf dieser für ein paar Monate und erst jetzt wieder dran...)
- (BEEILEN SIE SICH MOZILLA... ERHALTEN SIE DEN FUNKTIONEN UP-TO-DATE!!) thx
- Meinst du für jeden FF Nutzer? Denn Sie konnte für Ihre persönliche ändern , in
about:config
den Wertmedia.navigator.video.default_height
auf 180 undmedia.navigator.video.default_width
zu 320. Oder einen workaround (wahrscheinlich schlechte) sein könnte, um es zu zeichnen in einem canvas-nach der änderung der h/w alle Bilder - Ps: zumindest FF unterstützt
getUserMedia
(IE & Safari immer noch nicht) - Dieser Letzte Punkt ist sehr gültig :). Ich fand die Lösung für dieses.. poste ich es bald.
- Firefox unterstützt die Auflösung von Einschränkungen (wenn auch nicht die
aspectRatio
eine). Siehe meine Antwort in stackoverflow.com/questions/28282385/webrtc-firefox-constraints/... - wenn Ihr Aspekt als falsch klingt eher wie ein Fehler. Was für eine Kamera/OS hast du?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bearbeiten April 15
Wie bereits von @jib in seinem awesome Antwort,
Also die neue syntax, genehmigt durch den specs ist :
Aber diese syntax gibt einen Fehler in Chrome. Wie bereits in den Kommentaren, ein PR zu
adapter.js
gemacht worden, einschließlich einer polyfill für ältere FF und chrome.Hier ist mein Versuch, für chrome nur (aber neuere version von FF scheinen zu akzeptieren, die Magische und versteckte
require:['width', 'height']
.JS:
HTML:
Erste Antwort
Also begann ich zu schreiben Sie diese, bevor Sie Ihre eigene Frage beantwortet.
Wie bereits angemerkt in den Kommentaren, ich bin zeichnen jeden frame des Videos zu passen eine Mini-Leinwand.
JS:
CSS:
HTML:
Dieser macht seinen job aber wie Sie bemerkt Einschränkungen sind immer noch in der dev und der einzige Weg, um Ihnen das arbeiten mit Firefox ist auf manuell gesetzt, für alle browser
media.navigator.video.default_
imabout:config
.width: { min: 640 }
nichtminWidth: 640
. Auch überspringenmandatory
. Siehe die Antwort.require: ["width", "height"]
war integriert in FF. Ich werde versuchen, mit älteren Versionen, also lasse ich meine Antwort für heute.require
syntax in FF32 im letzten Jahr, eine unglückliche Abstecher in der Spezifikation wie die neue syntax wurde gearbeitet wird (ich arbeite mit jesup). - Ich Stimme zu, es ist bedauerlich, dass Chome wirft einen Fehler, aber ich schlage vor Einreichung ein Problem mit Ihnen, wie wir konvergieren müssen auf den standard, nicht auf etwas anderes. Ich versuche, dies zu beheben, in adapter.js, die cross-browser-shim, und ich habe ein PR für eine constraints-polyfill ausstehende gibt, das spec Einschränkungen mit Chrome und ältere Versionen von Firefox.Ok. Lange Zeit kommen.
Fand ich, dass der folgende code:
Ist eigentlich nutzlos. Was besser funktioniert, ist einfach zu benutzen,
Ist und Sie nur die Größe des Videos über CSS oder inline-html. Für meine Anwendung dies funktionierte gut, da musste ich einfach kopieren Sie die video-Inhalte auf eine Leinwand. Hat Super geklappt am Ende.
Also abschließend, das problem schien zu sein, die Einschränkung Optionen. Bleiben Sie Weg Formular Sie, wenn Ihr versucht, in mehreren Browsern.
Diese möglicherweise nicht für Sie arbeiten, wenn Sie eine bessere Kontrolle über Ihre Kamera-Auflösung. Wenn Sie brauchen endliche Kontrolle über die res, vielleicht versuchen bedingten (ie.
if(navigator.mozGetUserMedia){... //compatible resolutions etc ...}
).Beten, wird es eine standard -
getUserMedia
Funktion behandelt, die von allen Browsern bald! 🙂Nur eine Referenz. Ich Gabel einige fiddleJS code und modifiziert es zu testen, in Chrome-und Mozilla:http://jsfiddle.net/sidewaiise/Laq5txvq/