Videogrep+sous-titres
<slidy theme="ustensile" />
Sommaire
- 1 Qu'est-ce qu'un système d'exploitation?
- 2 C'est quoi cette boîte noire?
- 3 Pourquoi utiliser Linux?
- 4 Pragmatisme
- 5 Cultures et logiciels libres
- 6 C'est quoi une machine virtuelle?
- 7 Grep: Expressions régulières
- 8 Videogrep
- 9 En pratique: machine virtuelle
- 10 En pratique: videogrep
- 11 En pratique: design de sous-titres
- 12 Quelques autres commandes
Qu'est-ce qu'un système d'exploitation?
C'est quoi cette boîte noire?
Dial-Up Access by Using the Michigan Terminal System, 1967: https://www.youtube.com/watch?v=cO6asQjQmPM
Pourquoi utiliser Linux?
Pragmatisme
- plus personnalisable (interfaces graphiques différentes, noyau différent…)
- peu gourmand en ressources
- vieilles machines
- netbooks
- serveur
- système embarqué http://fr.wikipedia.org/wiki/Syst%C3%A8me_embarqu%C3%A9 : lecteur DVD, télévision, box Internet…
Cultures et logiciels libres
- écosystème: mailing-list, forum, chat IRC, wiki, bug report
- ne pas cacher la fragilité du software
- faire participer l'utilisateur à la conception et l'amélioration du software
- diversité des outils (plusieurs outils pour faire plus ou moins la même chose) et donc des pratiques → apprentissage constant
C'est quoi une machine virtuelle?
Grep: Expressions régulières
Des expressions régulières sont des motifs de texte
natte ~ nappe ~ na..e
grep na..e mon_fichier.txt
Testez vous-même!
wget -k -O /tmp/o.html https://en.wikipedia.org/wiki/HSBC && sed -i "s/\w\+ing/schtroumpfing/gi" /tmp/o.html && firefox /tmp/o.html
- Matthew Skala, IDSgrep: <https://tug.org/tug2013/slides/skala-slides.pdf>
- gender swap: <https://github.com/aparrish/rwet-examples/blob/master/regex/genderswap.py>
- Worl Trade Organization by the Yes Men: http://www.gatt.org/
- Timopedia by Timo Klok:
- Un poète qui utilise Grep, Loss Pequeño Glazier:
http://epc.buffalo.edu/authors/glazier/dp/appendices.html
The friendship between Hawthorne & Melville at Arrowhead, early 1850s. [from M] which Shakespearpe plays his grandest for Shakespeare his loftiest, but most philosophers Shakespeare is not adored who dream of Shakespeare as a mere man make Shakespeare, Shakespeare. Through Shakespeare, has been lavished upon indices. In Shakespeare's tomb lies infinitely more than Shakespeare ever wrote. And if I magnify Shakespeare, in Shakespeare and other masters of Shakespeare be seldom taken by his Shakespeare, who was forced to the start to read of Shakespeare touching Shakespeare at least, Shakespeare absolutely unapproachable. But Shakespeare has been approached.
Pour tester les expressions régulières, ou avoir de l'aide pour les commandes spéciales: <https://regex101.com/>
Videogrep
Permet un montage vidéo "à la volée" à partir d'une recherche dans les sous-titres d'une vidéo. Comme son nom l'indique (grep), on peut utiliser des expressions régulières. Ici on cherche les scènes où sont cités "Laura" mais aussi "Ben".
./videogrep Twin-Peaks-2x09-Arbitrary-Law.mkv "Laura|Ben"
En pratique: machine virtuelle
- Prévoir 15Go de place sur le disque dur de votre ordinateur
- Télécharger et installer le logiciel VirtualBox pour votre système d'exploitation: https://www.virtualbox.org/wiki/Downloads
- Note: pour Mac OS 10.5, prendre Virtual Box 3.0
- Le Terminal se trouve dans Accessoires/Terminal
- Pour chercher/installer un logiciel:
sudo apt-get search nom_du_logiciel sudo apt-get install nom_du_logiciel
En pratique: videogrep
Pour installer videogrep:
- Installer les logiciels ffmpeg (éditeur de sons/vidéos en ligne de commande) et mplayer (lecteur audio/vidéo en ligne de commande)
sudo aptitude install mplayer libav-tools
- Copier/Coller ceci dans un éditeur de texte et enregistrer en texte brut sous le nom "videogrep":
#!/bin/bash # videogrep # (c) Michael Murtaugh # Original source: http://activearchives.org/wiki/Videogrep # # Usage: # ./videogrep <movie_file> <search_term> (optional: <subtitle_to_display>) # # The subtitle file to be searched is implicit--it is always named the same # as the movie file, but with a .sub extension. We convert automatically # to .sub when another format (right now only .srt) is used. # # The optional <subtitle_to_display> argument allows a separate .sub file # to be displayed, such that a user can search in one language .sub and # display a separate (for instance, search for English and display Spanish). framerate=15 vid=$1 term=$2 base=${vid%%.*} if [ ! -e $base.sub ] then if [ -e $base.srt ] then echo "Dumping $base.sub from $base.srt..." mplayer "$vid" -sub "$base.srt" -dumpmicrodvdsub -endpos 1 mv dumpsub.sub "$base.sub" fi fi subtitle=${vid%%.*}.sub # look for subtitles as (moviename - ext) + ".sub" dstart=-0.5 # seconds to add to the start time (negative = earlier) dend=2 # seconds to add to the end time echo searching \'$vid\' for \'$term\' using \'$subtitle\'... cat $subtitle | \ egrep -i $2 | \ sed -e 's/{\([[:digit:]]*\)}{\([[:digit:]]*\)}.*/\1 \2/' | \ awk '{ print ($1/'$framerate') " " ($2/'$framerate') }' | \ awk 'BEGIN { cur=0 } { if ($1 > cur) print cur " " $1 " 0" cur = $2 } END { print cur " 10000 0" } ' > videogrep.edl showsub=${3:-$subtitle} mplayer -sub "$showsub" -edl videogrep.edl -fs "$vid"
Ensuite, pour l'utiliser depuis le terminal:
bash videogrep ma_video.avi un_mot_à_chercher
Si la vidéo reste bloquée, il faut probablement changer le "framerate" dans le script. Pour connaître le *framerate* de la vidéo, taper ceci, et chercher le nombre devant le mot "fps":
avprobe ma_vidéo.avi
En pratique: design de sous-titres
A word only lives once (http://stdin.fr/Bazar/Disappearance):
Documentation:
Pour convertir un fichier .srt en .ssa, utiliser le script `srt2ssa.sh` disponible sur <http://stdin.fr/Bazar/SSA>.
Lire des sous-titres au format SSA/ASS:
mplayer -ass -sub sous-titres.ssa video.avi
Styler les sous-titres de chaque voix d'une interview:
ssa2voices.py
Quelques autres commandes
Mettre un fichier son sur une vidéo vide:
avconv -f lavfi -i color=c=blue:s=320x240:d=5 -i fichier_son.ogg fichier_video.ogv
Lire la vidéo en ASCII art (appuyer sur `d` pour changer la trame):
mplayer -vo caca ma_video.avi
Plus de documentation:
- mplayer: <http://doc.ubuntu-fr.org/mplayer>
- avconv: <http://doc.ubuntu-fr.org/avconv>