• Slidy
  • Videogrep+sous-titres

    De Ustensile
    Aller à : navigation, rechercher

    <slidy theme="ustensile" />

    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

    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


    Voici un graphique avec des bordures et des nœuds qui peut contenir des hyperliens.
    À propos de cette image

    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
    


    • Timopedia by Timo Klok: 3188837280_0244e0c0cc_b.jpg
    • 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): P7160905_640.jpg

    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: