10
votes

Obtenez une première image vidéo en JavaScript

Comment puis-je obtenir la première image d'un fichier vidéo en JavaScript sous forme d'image?


9 commentaires

Vous voulez dire client JS ou Server JS? Si le côté client, je ne pense pas que cela soit possible.


Quel format vidéo? FLV? Avi? MOV?


Utilisez-vous des balises vidéo HTML5?


Le format pourrait être n'importe lequel de ce qui précède


Si le côté serveur, quel cadre latéral serveur / moteur utilisez-vous?


JavaScript n'a pas de fonctionnalité de traitement vidéo native. Les navigateurs ne fournissent pas de fonctionnalité de traitement vidéo. Vous aurez besoin d'une bibliothèque qui cela est fourni de quelque part ailleurs - si le JS exécute le côté serveur, vous aurez besoin de l'exécution que vous utilisez pour le prendre en charge si le JS exécute le côté client, vous aurez besoin de quelque chose que le JS peut y accéder. Pour le faire (par exemple, une applet Java).


JavaScript ne fonctionne jamais sur le côté serveur!


@JOSH: Sauf quand il fait! Il y a beaucoup de lignes dans cette table sur en.wikipedia.org/wiki/server-side_javascript


Stackoverflow.com/questions/19175174 / ...


5 Réponses :


2
votes

JavaScript n'est pas capable de le faire.


1 commentaires

Il peut être fait sur un côté client avec des balises HTML 5, voir ma réponse ci-dessous



2
votes

Comme mentionné, JavaScript n'est pas capable de le faire.

Si vous souhaitez créer des vignettes pour vos vidéos, vous devez créer le côté du serveur miniature, puis servir simplement l'image sur le client comme vous le feriez d'une autre image. .

Ma méthode de choix pour accomplir ceci est le FFMPEG décodeur. Il peut gérer une multitude de formats de fichier et est capable de faire ce que vous voulez. Donc, si vous avez une vidéo nommée hello.avi , vous pouvez faire: xxx

Vous pouvez exécuter cette commande (correction des chemins et des dimensions. .) Avec tout langage côté serveur que vous utilisez et cela créerait une vignette du fichier vidéo.


0 commentaires

0
votes

Il peut être possible si la vidéo est un fichier sélectionné par l'utilisateur dans un , vous pouvez obtenir les données vidéo de base-64 à l'aide de l'API de FileAder: < / p>

https://developer.mozilla.org/en-us/docs/ DOM / FILEREADER

De là, vous êtes juste laissé avec le problème extrêmement insoluble de décoder la vidéo et de choisir en quelque sorte une seule image, en JavaScript. Sinon, vous pouvez simplement inclure toute la vidéo en tant que "Aperçu de la vignette" (je suppose que c'est pourquoi vous faites cela?), Comme démontré ici:

http: // hacks .mozilla.org / 2009/12 / File-Drag-and-Drop-in-Firefox-3-6 /

Pas sûr de la compatibilité de ce dernier exemple, ou de la qualité de fonctionnement avec des fichiers vidéo plus importants (j'entends que vous pouvez facilement heurter les restrictions de longueur d'URL)


0 commentaires

6
votes

Ajoutez simplement la balise vidéo à la page sans commandes et aucune lecture automatique.

L'inconvénient est que les utilisateurs peuvent lire la vidéo en cliquant avec le bouton droit de la souris sur la vignette et la sélection de "Lecture" dans le menu contextuel. Pour éviter que vous ayez besoin d'une petite écoute JavaScript pour cliquer sur des événements et de les annuler (supprimer le menu contextuel des vignettes).


0 commentaires

7
votes

Il peut être fait avec les balises de vidéo HTML 5 et de toile:

html: xxx

javascript: xxx < p> Voir la démo


2 commentaires

N'a pas travaillé de moi. Je devais ajouter 'vidéo.currenttime = 0,001' comme solution de contournement, sinon l'image était vide.


Cette convention de dénomination supérieure de soulignement semble spéciale.