2011-06-13 6 views
5

J'essaie de diffuser des vidéos qui sont transcodées à la volée. Malheureusement, cela signifie que la recherche ne fonctionne pas. Je suppose que c'est parce que le navigateur ne sait pas combien de temps la vidéo est et ne peut donc pas afficher une barre de recherche correctement.Flux vidéo HTML5/recherche

Est-ce que quelqu'un sait s'il est possible de coder en dur la durée d'une vidéo? L'autre option que j'ai imaginée peut être de créer ma propre barre de recherche et d'utiliser JS pour mettre à jour sa position et, si elle est déplacée, mettre à jour l'URL de la vidéo pour passer une heure de début au serveur.

Des suggestions sur la meilleure façon de procéder?

W

+1

Comment fonctionne normalement la recherche - suppose-t-il un débit binaire vidéo constant? Est-ce que vous supposez/générer un débit constant sur le serveur? J'aurais pensé que la longueur serait dans les données d'en-tête vidéo, par exemple. l'atome MO4 MP4 ou équivalent pour d'autres formats. – Rup

+0

Oui, je définis un débit binaire mais l'en-tête ne peut pas connaître la longueur de la vidéo car elle n'est pas encore entièrement transcodée. Je ne suis pas sûr si une durée est suffisante pour permettre la recherche ou si les informations d'images clés doivent être présentes dans l'en-tête (la vidéo I * think * flv fonctionne comme ça) – Gaspode

+0

dans quel navigateur avez-vous testé cette vidéo? – arufian

Répondre

1

Vous devez fournir plus d'informations sur la façon dont cela fonctionne sur le serveur. Cependant, voici ma réponse générique sur ce que je suppose qu'il se passe.

Vous avez une vidéo dans un certain format sur votre serveur et il est servi dans un format différent, je suppose pour la compatibilité du navigateur (WebM pour firefox, etc.).

Ce que vous devez faire est d'avoir une base de données pour toutes les vidéos mises en ligne qui gardent la trace de la longueur dans son format d'origine. Ensuite, lors du transcodage de la vidéo dans un format différent, vous pouvez vérifier la base de données pour voir sa longueur au lieu d'essayer de la retirer du flux de transcodage.

Utilisez-le pour créer vous-même un curseur dont la longueur est la valeur maximale.

Définissez ensuite currentTime sur l'élément vidéo html5 à l'aide de la valeur du curseur.