2016-02-16 6 views
5

Um meinen benutzerdefinierten HTML5-Videoplayer vollständig zu implementieren, brauche ich die genaue Bildrate eines Videos. Allerdings habe ich es noch nicht in der Lage zu finden und einen Standardwert von 25 bin mit Typischerweise Videos haben einen Frame-Rate-Wert in Meta-Daten, so Meta-Daten in etwa so ich zugegriffen werden:Wo in Metadaten eines Videos in HTML5 ist die fps gespeichert?

var vid = document.getElementById("myVideo"); 
vid.onloadedmetadata = function(e) { 
console.log(e); 
}; 

jedoch Ich kann die Bildrate hier nicht finden. Vielleicht lese ich überhaupt keine Metadaten. Ich kann deine Hilfe benutzen. Danke!

Antwort

1

Ich bin 95% sicher, dass das Standard-html5 Video api nicht die fps Informationen verfügbar macht, von dem, was ich in den letzten Monaten gelesen habe - andere apis wie MPEG-DASH und jwplayer vorhanden tut mehr/andere Daten.

Ihre beste Wette wäre um w3schools.com/tags/ref_av_dom.asp und ähnliche mdn Seiten zu schnüffeln.

Sie können dies in Echtzeit selbst berechnen und es sollte die meiste Zeit funktionieren, aber ich kann mir vorstellen, dass es einen oder zwei Fälle gibt, wenn es nicht so wäre. Schauen Sie sich PresentedFrames und dann so etwas wie:

fps = video.time/PresentedFrames 

mehr über PresentedFrames here (derzeit Vorschlag) und ähnliche Attribute in der gleichen link.

+0

Danke brod, ich denke auch, dass es unwahrscheinlich ist, dass fps als eine Eigenschaft von der HTML-Video-Element gegeben ist. Ich habe nur gehofft, dass es anders wäre. Ich mag Ihre gegebene Lösung, aber wie berechne ich PresentFrames? Weil die Art und Weise, Frames zu messen, die Verwendung von fps und der aktuellen Zeit ist. Gibt es eine andere Möglichkeit, PresentFrames zu finden? –

+0

@HasanWajahat Ich habe meine Antwort mit einer Quelle aktualisiert, die viele verschiedene Attribute dokumentiert, die bei der Berechnung der fps nützlich sein könnten (speziell die PresentedFrames) – brod

+0

Danke für die Freigabe, Leider hat Chrome die preservedFrames noch nicht implementiert. Mozilla hat es getan, aber ich brauche es für Chrome. –