FS#40 - Metadatas/Tags sur les vidéos dans EKD (future fonction de la version 2.1-0)
Ouverte par Strict Standards: array_map() expects parameter 1 to be a valid callback, non-static method Filters::noXSS() should not be called statically in /data/web/64/9e/8e/ekd.tuxfamily.org/htdocs/bugs/includes/class.tpl.php on line 281 Angelo (ekd) - Strict Standards: Non-static method Filters::noXSS() should not be called statically in /data/web/64/9e/8e/ekd.tuxfamily.org/htdocs/bugs/includes/class.tpl.php on line 613 lundi, 01 février 2010, 16:55 GMT
Dernière édition par Strict Standards: array_map() expects parameter 1 to be a valid callback, non-static method Filters::noXSS() should not be called statically in /data/web/64/9e/8e/ekd.tuxfamily.org/htdocs/bugs/includes/class.tpl.php on line 281 Ptah (Ptah) - Strict Standards: Non-static method Filters::noXSS() should not be called statically in /data/web/64/9e/8e/ekd.tuxfamily.org/htdocs/bugs/includes/class.tpl.php on line 613 mardi, 28 septembre 2010, 19:37 GMT
|
DétailsVoilà tout est dans le titre, je pense que c'est une fonction qui peut être super intéressante pour EKD. L'utilisateur pourra assigner des tags sur ses vidéos, voir les tags en question et les éditer/modifier.
FFmpeg permet de le faire facilement mais je ne sais pas pourquoi ils ne sont pas récupérables/lisibles avec un simple: ffmpeg -i ma_video. Voilà la syntaxe FFmpeg: ffmpeg -i in.avi -metadata key1=val1 -metadata key2=val2 ... out.flv un exemple: ffmpeg -i in.avi -metadata date="01/02/2010" -metadata artiste="Jo" -metadata copyright="une vidéo avec copyraytheuhhhh" ... out.flv Mplayer quant à lui les lit/récupère très bien !, on s'orienterait donc vers l'utilisation de Mencoder pour assigner les tags et Mplayer pour les récupérer, voilà la syntaxe (attention Mencoder ne peut assigner des tags qu'aux vidéos AVI !!!, il faudra le signaler dans des boîtes de dialogue): Voilà la syntaxe Mencoder: mencoder -ovc copy -oac copy video_in.avi -info name="Vidéo pour essai" -info genre="Une vidéo qu'elle est merveilleuse" -info copyright="C'est pas ma vidéo à moué" -info comment="Date de création des tags 01/02/2010-16h39" -o video_out.avi ==> Il est bon à savoir que les tags (Mencoder) n'acceptent pas certains caractères, comme: ! : " \ par contre les caractères . , ? ; # ' - _ / ^ ( ) [ ] { } = @ % * < > & ~ | sont parfaitement acceptés dans les tags. Voilà comment lire/récupérer les tags (Mplayer): mplayer video.avi -vo null -ao null -frames 0 -identify '$@' 2>/dev/null J'ai crée les tags pour la vidéo: zwz_essai_creation_tags_mencoder.avi ... et voilà les renseignements donnés (Mplayer): angelo@kubuntu-1:~/blender$ mplayer zwz_essai_creation_tags_mencoder.avi -vo null -ao null -frames 0 -identify '$@' 2>/dev/null MPlayer UNKNOWN-4.4.1 (C) 2000-2009 MPlayer Team Playing zwz_essai_creation_tags_mencoder.avi. AVI file format detected. ID_VIDEO_ID=0 [aviheader] Video stream found, -vid 0 ID_AUDIO_ID=1 [aviheader] Audio stream found, -aid 1 VIDEO: [DX50] 720x576 24bpp 25.000 fps 1334.9 kbps (163.0 kbyte/s) Clip info: Software: MEncoder UNKNOWN-4.4.1 ID_CLIP_INFO_NAME0=Software ID_CLIP_INFO_VALUE0=MEncoder UNKNOWN-4.4.1 Name: Vidéo pour essai ID_CLIP_INFO_NAME1=Name ID_CLIP_INFO_VALUE1=Vidéo pour essai Genre: Une vidéo qu'elle est merveilleuse ID_CLIP_INFO_NAME2=Genre ID_CLIP_INFO_VALUE2=Une vidéo qu'elle est merveilleuse Copyright: C'est pas ma vidéo à moué ID_CLIP_INFO_NAME3=Copyright ID_CLIP_INFO_VALUE3=C'est pas ma vidéo à moué Comments: Date de création des tags 01/02/2010-16h39 ID_CLIP_INFO_NAME4=Comments ID_CLIP_INFO_VALUE4=Date de création des tags 01/02/2010-16h39 ID_CLIP_INFO_N=5 ID_FILENAME=zwz_essai_creation_tags_mencoder.avi ID_DEMUXER=avi ID_VIDEO_FORMAT=DX50 ID_VIDEO_BITRATE=1334928 ID_VIDEO_WIDTH=720 ID_VIDEO_HEIGHT=576 ID_VIDEO_FPS=25.000 ID_VIDEO_ASPECT=0.0000 ID_AUDIO_FORMAT=85 ID_AUDIO_BITRATE=191712 ID_AUDIO_RATE=0 ID_AUDIO_NCH=0 ID_LENGTH=191.24 ID_SEEKABLE=1 ID_CHAPTERS=0 ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4) ========================================================================== ID_VIDEO_CODEC=ffodivx ========================================================================== Opening audio decoder: [mp3lib] MPEG layer-2, layer-3 AUDIO: 44100 Hz, 2 ch, s16le, 192.0 kbit/13.61% (ratio: 24000->176400) ID_AUDIO_BITRATE=192000 ID_AUDIO_RATE=44100 ID_AUDIO_NCH=2 Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3) ========================================================================== AO: [null] 44100Hz 2ch s16le (2 bytes per sample) ID_AUDIO_CODEC=mp3 Starting playback... Playing $@. Exiting... (End of file) ID_EXIT=EOF Voilà les noms des tags qui sont utilisables/affichables (Mencoder/Mplayer): angelo@kubuntu-1:~$ mencoder -info help MEncoder UNKNOWN-4.4.1 (C) 2000-2009 MPlayer Team Available INFO fields: name - title of the work artist - artist or author of the work genre - original work category subject - contents of the work copyright - copyright information srcform - original format of the digitzed material comment - general comments about the work A savoir: j'ai essayé de créer des tags avec FFmpeg et tout de suite essayé après de les afficher avec Mplayer ... et bien rien du tout, Mplayer ne les voit pas (ont-ils réellement été crées ?, FFmpeg fonctionne-t-il bien par rapport à ça ?). En tous cas une chose est sûre c'est que Mencoder/Mplayer fonctionnent très bien par rapport à ça (inconvénient ils n'acceptent que les vidéos AVI). |
Strict Standards: Non-static method Filters::noXSS() should not be called statically in /data/web/64/9e/8e/ekd.tuxfamily.org/htdocs/bugs/includes/class.tpl.php on line 613 mardi, 28 septembre 2010, 19:37 GMT
La raison de la clôture est: Fixed
A ce propos voir ces copies d'écran:
* http://ekd.nerim.net/images_diverses/01_09_10_introduction_tags_video_001.jpg
* http://ekd.nerim.net/images_diverses/01_09_10_introduction_tags_video_002.jpg
Voici la syntaxe Mencoder pour créer des tags vidéo:
mencoder video_in.avi -ovc copy -oac copy -info name="... texte ..." -info artist="... texte ..." -info genre="... texte ..." -info subject="... texte ..." -info copyright="... texte ..." -info comment="... texte ..." -o video_out.avi
Il va maintenant falloir passer à la création (et l'edition) des tags vidéos eux-mêmes.
Il faudrait donc créer le menu: Vidéo > Tags vidéo (et juste en dessous de: Vidéo > Diaporama d'image en vidéo).
Aurélien ou Olivier, un de vous deux peux-t-il créer ce nouveau menu ?
Voilà comment je verrais la disposition de ce menu (j'ai fait une simulation sur cette image):
* http://ekd.nerim.net/images_diverses/02_09_10_simulation_onglet_reglages_tags_video_ds_ekd_001.jpg
--> Dans l'onglet Réglages, il faudrait donc mettre un champ de texte pour chaque réglage de tag (champs de texte en lecture et en écriture bien entendu).
--> Il faudrait faire en sorte que les tags dans la vidéo puissent être crées par l'utilisateur, mais aussi qu'ils soient détectés automatiquement (dans l'onglet Réglage) quand l'utilisateur charge une vidéo qui en possède. Il faudrait donc que les texte (contenus dans le tags), s'ils existent, ou les tags remplis dans la vidéo, apparaissent automatiquement dans les champs de texte contenus dans l'onglet Réglages (on permettrait ainsi aussi l'édition des tags). Ce serait vraiment une bonne chose).
--> Il faudrait enlever l'onglet correspondant au visionnage de la vidéo (après traitement) dans ce menu Tags vidéo. Cet onglet ne servirait à rien ici.
Autrement j'ai fait qques changements dans le fichier moteur_modules_animation/mplayer.py ; j'ai commenté:
ligne = ligne.replace(" ", "")
... car bien entendu les différents mots des tags vidéos étaient tous collés les uns aux autres et cela devenait illisible à l'arrivée.
De plus je me suis aperçu que les tags possédant des caractères accentués faisaient planter la fenêtre d'information d'EKD, j'ai crée rapidement ceci:
ligne = ligne.replace("é", "e")
ligne = ligne.replace("è", "e")
ligne = ligne.replace("ç", "c")
ligne = ligne.replace("à", "a")
ligne = ligne.replace("ù", "u")
ligne = ligne.replace("ä", "a")
ligne = ligne.replace("ü", "u")
ligne = ligne.replace("ö", "o")
... il faudrait voir si on pourrait trouver qque chose de plus générique (par exemple un encodage automatique à la fois sous GNU/Linux et sous windows).
Voilà, voilà, il faudrait vraiment qu'on avance dans la création de cette nouvelle fonctionnalité de création et d'édition de tags vidéo (maintenant que j'ai terminé la lecture automatique des tags vidéo dans la fenêtre d'info). Cette fonctionnalité sera extrêmement utile ! Qui s'en occupe ?
a+
Angelo
Aurélien et Olivier, il faudrait regarder le code que j'ai mis en place et faire qques réajustements.
C'est sur le SVN.
a+
Angelo
http://ekdm.wordpress.com/2010/09/07/tags-video-dans-ekd
a+
Angelo
Deux trois petites chose que je suis en train de modifier sur la partie de la gestion des tags :
- Possibilité d'ajouter jusqu'à 10 tags (définissable par l'utilisateur)
- Suppression des lignes non utiles
- utilisation de la fonction mplayer getparamvideo (j'ai testé et c'est possible)
- correction du bug de non rafraichissement des tags lorsqu'on charge une autre vidéo
A+
Aurélien
Très content que tu puisses reprendre du service ;)
Que veux-tu dire par suppression des lignes non utiles ?
Pour "utilisation de la fonction mplayer getparamvideo (j'ai testé et c'est possible)" et "correction du bug de non rafraichissement des tags lorsqu'on charge une autre vidéo"
Très bonne chose !
Concernant "Possibilité d'ajouter jusqu'à 10 tags (définissable par l'utilisateur)", es-tu sûr que tu puisses ajouter 10 tags car chez moi avec Mencoder sous Kubuntu Karmic je ne peux gérer que 6 tags, c'est à dire:
mencoder ... -info name="... texte ..." -info artist="... texte ..." -info genre="... texte ..." -info subject="... texte ..." -info copyright="... texte ..." -info comment="... texte ..."
a+
Angelo
- Pour les 10 tags, il faut que je vérifie, je n'ai pas testé, mais si c'est pas 10, ça sera 6 :) De toute façon, ça sera dans les options globales d'Ekd.
Aurélien
J'avais mis cela comme ça car un champ de texte vide (ou une ligne vide) faisait planter la commande tag de Mencoder. Il va donc falloir poser la question à l'utilisateur pour savoir quel(s) tag(s) il veut remplir (et ensuite suivant les réponses de l'utilisateur, ne proposer que les tags qu'il a demandés) --> par une boîte de dialogue ? Attention il faudra alors bien nommer les tags (dans cette eventuelle boîte de dialogue):
* Nom: (--> commande Mencoder -info name="... texte ...")
* Artiste: (--> commande Mencoder -info artist="... texte ...")
* Genre: (--> commande Mencoder -info genre="... texte ...")
* Sujet: (--> commande Mencoder -info subject="... texte ...")
* Copyright: (--> commande Mencoder -info copyright="... texte ...")
* Commentaires(s): (--> commande Mencoder -info comment="... texte ...")
Maintenant je me met dans la situation de l'utilisateur qui demande à remplir les tags Artiste, Genre et Copyright ... mais en fin de compte je ne remplis que les tags Artiste et Copyright (et je laisse vide le tag Genre), là ça fera planter la commande Mencoder ... il faudra donc mettre des exceptions (avec boîtes de dialogue d'information pour l'utilisateur, comme quoi le tags Genre n'ayant pas été rempli, il ne sera pas pris en compte).
" - Pour les 10 tags, il faut que je vérifie, je n'ai pas testé, mais si c'est pas 10, ça sera 6 :) De toute façon, ça sera dans les options globales d'Ekd."
Ok dac ;). Si si je t'assure il n'y en a que 6 (les 6 que j'ai décrits au-dessus), et sous windows (la version de Mplayer-Mencoder qui se trouve directement dans l'arborescence d'EKD) ne comporte elle que 5 tags (il me semble que c'est le tag Name qui n'en fait pas partie).
Voilà, voilà, dès que tu peux mettre tout ça en place sur le SVN je serais prêt à tester (ensuite à refaire une version exe pour winchose et à ecrire un autre article de complément sur le blog d'EKD).
Ne pas oublier non plus de bien mettre en place la détection des tags déjà existant (pour les vidéos qui en possèdent déjà) ... et donner la possibilité à l'utilisateur d'éditer les existants mais aussi à remplir ceux qu'il veut remplir en + (parmi les 6 of course).
a+
Angelo
Au final, j'ai gardé les 6 tags mais j'ai modifier en profondeur le code pour pouvoir l'utiliser via ligne de commande (plus tard :) )
Le nombre de tags n'est pas paramétrable puisqu'on est effectivement limité par mencoder qui est très restrictif par rapport aux tags...
J'ai également changé l'interface utilisateur pour qu'elle permette d'ajouter ou de supprimer des tags (ce qui n'était pas le cas précédemment, on était 'obligé' d'avoir les 6 tags de définis)
Voilà voilà :)
A+
Aurélien
Je viens de voir et c'est très chouette ! ... malgré tout 2 choses:
1) je constate que si je démarre EKD et que dans la foulée si on va ds l'onglet Réglages (en ayant pas chargé de vidéo) et qu'on sélectionne Ajouter un tag ... rien ne se passe (on devrait peut-être avoir à ce moment une boîte de dialogue qui s'affiche et qui nous dit par exemple: "Vous devez charger une vidéo pour pouvoir ajouter des tags.")
2) il faudrait trouver le moyen de mettre les tags en français avec _("...") dans la liste Ajouter un tag.
Voilà, voilà.
a+
Angelo
Pour 1, ok pas de problème.
Pour 2 : j'ai délibérément choisi de ne pas les traduire puisque le nom des tags correspondent aux paramètres de mencoder et du coup si on les traduit on a plus la correspondance entre le tag dans la vidéo et le tag affiché. Le second problème est que si plus tard, on gère tous les tags possibles d'une vidéo en donnant la possibilité d'ajouter des tags personnalisés (software par exemple est un tag ajouté par mencoder mais pas par les autres encoder), on ne pouura pas les traduires...
Aurélien
Ok dac je comprend bien pour le 2, ça roule ;)
a+
Angelo
Je clos le Bug.