Différences entre les versions de « Transcriptions (introduction) »

De April MediaWiki
Aller à la navigationAller à la recherche
Ligne 644 : Ligne 644 :
 
</pre>
 
</pre>
  
 +
 +
==== Couper un morceau d'une vidéo ====
 +
 +
Exemple: journal télévisé.
 +
* On prend le WMV d'origine
 +
* On le «streamdumpe» par mplayer
 +
* On le découpe avec la commande:
 +
<pre>
 +
mencoder ''source''.wmv -oac copy -ovc copy -ss 00:07:17 -endpos 00:00:24 -o ''fichier_de_la_bonne_longueur''.wmv
 +
</pre>
 +
 +
==== Sauvegarder en local une vidéo introduite par un programme Flash ====
 +
 +
Plusieurs cas sont possibles:
 +
* Cas général: le site [http://keepvid.com/ Keepvid] propose une méthode générale pour les sites principaux (mais cela ne semble pas fonctionner chez moi; peut-être à cause de mes réglages réseau particuliers?).
 +
 +
* Cas particulier: '''vidéo située sur le site YouTube'''
 +
 +
Le paquet Debian ''youtube-dl'' (attention à le prendre dans sa dernière version, Debian ''unstable'', car le site web change parfois son système) rapatriera le fichier vidéo si on lui donne l'URL (dont plusieurs formes sont possibles). Exemple d'utilisation:
 +
<pre>youtube-dl http://youtube.com/watch?v=dMH0bHeiRNg</pre>
 +
 +
Ceci produit le fichier ''dMH0bHeiRNg.flv'', lisible avec ''mplayer''.
 +
 +
* Cas particulier: '''vidéo située sur le site MetaCafe'''
 +
 +
Le paquet Debian ''metacafe-dl'' (attention à le prendre dans une version récente, Debian ''unstable'' par exemple, car le site web change parfois son système) rapatriera le fichier vidéo si on lui donne l'URL (dont plusieurs formes sont possibles). Exemple d'utilisation:
 +
<pre>metacafe-dl http://www.metacafe.com/watch/40191/animals_vs_humans/</pre>
 +
 +
Ceci produit le fichier ''40191.flv'', lisible avec ''mplayer''.
 +
 +
* Cas général: '''Vidéo chargée par un programme Flash'''
 +
 +
Il existe plusieurs types de programmes Flash, et les techniques changent en fonction.
 +
 +
* Méthodologie pour [http://www.maniacworld.com/most-intense-commercial-ever.html cette pub sur Maniac World] :
 +
* Avoir installé le paquet ''swfdec-mozilla'' (existe chez Debian; sa version 0.5.2-1 suffit) avant de démarrer le navigateur (Iceweasel)
 +
** Clic droit dans la zone de la vidéo: activer ''Playing''
 +
** Attendre que le programme s'exécute et que la vidéo démarre
 +
** Clic droit: désactiver ''Playing''
 +
** Clic droit: ''Properties''
 +
** agrandir la fenêtre ''pop-up'' qui apparaît
 +
* On observe un média vidéo (''Type: Flash Video''; ''Flash Movie'' est le programme chargeur Flash en lui-même)
 +
* Attendre la fin du chargement du fichier FLV (100%) puis cliquer sur sa ligne et choisir ''Save media as''
 +
* On peut aussi copier son lien (je n'ai pas trouvé comment l'insérer dans le tampon avec ce toolkit) pour le [http://www.wacklepedia.com/flv/most-intense-commercial-ever.flv récupérer à part].
 +
 +
* Méthodologie pour [http://www.ratiatum.com/breve5671_P2P_Neuf_Cegetel_favorable_aux_pieges_a_souris_et_aux_amendes.html cette interview sur Ratiatum.com] (cette méthode fonctionne aussi pour les vidéos du site [http://www.veoh.com/ veoh], où cette vidéo est en fait hébergée):
 +
* Avoir installé le paquet ''swfdec-mozilla'' (existe chez Debian; sa version 0.5.2-1 suffit) avant de démarrer le navigateur (Iceweasel)
 +
** Clic droit dans la zone de la vidéo: activer ''Playing''
 +
** Attendre que le programme s'exécute et que la vidéo démarre
 +
** Clic droit: désactiver ''Playing''
 +
** Clic droit: ''Properties''
 +
** agrandir la fenêtre ''pop-up'' qui apparaît
 +
* On n'observe pas de média vidéo (''Type: Flash Video''; ''Flash Movie'' est le programme chargeur Flash en lui-même)
 +
* C'est le média de ''Type: Text'' qui compte. Attendre la fin du chargement (100%) puis cliquer sur sa ligne et choisir ''Save media as''
 +
* On peut aussi copier son lien (je n'ai pas trouvé comment l'insérer dans le tampon avec ce toolkit) pour le [http://www.veoh.com/rest/video/v1143821sfh7d8Xf/details récupérer à part].
 +
* Dans ce fichier on remarque:
 +
<pre>
 +
fullPreviewHashPath="''http://content.veoh.com/flash/p/1143821/c19d20cb888f6297229a49890ac44dd4f5d115f7.flv?ct=bf9a5fe7a290e1daa8b27ab27b1f2eaf0b55f93e48ebbc33''"
 +
</pre>
 +
* C'est l'URL à rapatrier (y compris le code final, sinon on prend un ''403 Forbidden'')
 +
 +
* Méthodologie pour [http://www.dailymotion.com/ Dailymotion] : aucune solution sur poste client (à base de logiciels libres) n'a été trouvée à ce jour. Si vous en connaissez une, n'hésitez surtout pas à nous en faire part!
  
 
===Court terme===
 
===Court terme===

Version du 6 octobre 2009 à 16:08

Wiki du groupe Transcriptions

http://www.april.org/fr/groupes/transcriptions

Introduction

Le groupe de transcription de l'April est ouvert à toutes les bonnes volontés. Les remarques constructives sont les bienvenues.

Pour nous contacter, il suffit de s'inscrire à la liste de diffusion : http://www.april.org/wws/info/transcriptions

Présentation

L'objectif est de transcrire des documents sonores ou vidéos intéressants et traitant de logiciels libres, de ressources documentaires diffusées selon des conditions comparables à celles des logiciels libres, et de tous sujets pertinents annexes et connexes : transformation en texte brut (ou HTML...) de (parties de) bandes son ou vidéo de conférences ou interventions stratégiques ou importantes: RMLL, CSI, interviews radio... Réflexion sur des programmes facilitant la tâche. Contact des intervenants pour s'assurer de leur accord ou conditions. Réécriture légère sur un ton passant mieux à l'écrit. Ainsi ces contenus seront plus accessibles, disponibles dans les moteurs de recherche, imprimables, citables, etc.

Motivation

Le groupe de travail «Transcriptions» vise à recenser, annoter et transformer au format texte brut (ou HTML) des documents sonores ou vidéo présentant un intérêt pour l'objet de l'association.

En termes de visibilité dans les moteurs de recherche, un événement, un discours, une émission... non transcrits n'existent pas. Du point de vue de la mémoire, un événement non enregistré en vue d'une transcription future laisse chez les personnes présentes dans le public une trace qui s'efface vite - quel souvenir conservez-vous des discours que vous avez entendus voici quelques années? Parfois, on observe d'intéressantes évolutions dans les idées, argumentations, ou exemples présentés par un orateur récurrent.

Produire des textes permet encore au lecteur de s'y reporter facilement, d'extraire facilement des citations pour appuyer un argumentaire, de les lire en diagonale ou à son rythme sans devoir subir le débit de l'orateur, son accent, une mauvaise qualité d'enregistrement. On élargit considérablement le public potentiellement atteint pour un même effort d'organisation initial.

Pour toutes ces raisons, on peut soutenir que la présence d'un format texte dans les archives multiplie considérablement la visibilité et l'impact d'un événement, et qu'il est donc souhaitable que ses organisateurs se donnent les moyens ou ressources d'organiser cet effort.

Les sources sont les conférences et interventions, notamment de sommités; les émissions des médias grand public; certaines vidéos issues du Web. Nous disposons déjà de plusieurs dizaines de documents, pour la plupart stockés sur la zone web « Médias » et recensés sur le présent document.

Chacun choisira les interventions qui lui semblent les plus importantes ou intéressantes en priorité, en s'assurant préalablement de l'accord des personnes ou ayant-droits qui pourraient juridiquement s'opposer à la diffusion du texte transcrit.

C'est un travail assez long et demandant d'écrire la langue parlée sans trop de fautes. Les premières mesures montrent qu'il faut compter (selon la langue, le débit de l'orateur, son accent, la qualité de l'enregistrement) 5 à 7h de travail pour écrire le premier jet d'une heure d'enregistrement... qu'il faut encore corriger, relire/réécrire, faire relire aux personnes concernées, et mettre en page, En termes financiers, s'il fallait rémunérer ce travail, chaque heure bien transcrite coûterait largement 200 € (ordre de grandeur). On ne pourra donc jamais tout faire, et on comprend qu'il est important de traiter en priorité les documents stratégiques les plus importants - même si l'intérêt personnel du bénévole et l'urgence sont également des facteurs.

Si vous souhaitez en savoir plus, contactez le groupe de travail sur sa liste de diffusion.

Les copies locales des médias sont autant que possible conservées dans leur format original, même s'il ne s'agit pas d'un format ouvert au sens de l'article 4 de la loi française nº 2004-575 du 21 juin 2004 : « On entend par standard ouvert tout protocole de communication, d'interconnexion ou d'échange et tout format de données interopérable et dont les spécifications techniques sont publiques et sans restriction d'accès ni de mise en oeuvre. »

Les raisons de ce choix :

  • ce groupe de travail ne vise pas à produire de médias; il n'a donc pas de dimension d'incitation et peu de risques de devoir acquitter des amendes ou frais de licence;
  • ces formats sont lisibles avec des logiciels libres (un critère suffisant : ils sont testés avec des paquets officiels de la distribution Debian GNU/Linux ;
  • À ce jour, toute transformation dans un format ouvert est complexe, ad hoc, buggée, et introduit presque toujours des pertes de qualité, parfois inacceptables car détectables au point de gêner. Il y a donc destruction d'information, ce qui est presque toujours une mauvaise chose.

Ainsi, la conférence de Michael Hart à l'UNESCO de Paris en 2004 fut sans doute retraitée, car un long passage en est inaudible, et ce symptôme est typique d'un bug observé du programme mencoder.

De même, une manipulation visant à n'extraire que la portion pertinente d'une vidéo introduit souvent de désagréables défauts de fluidité dans la bande son.

Comment contribuer

Tout coup de main permettant de se rapprocher de ces objectifs est donc le bienvenu:

  • Correction de fond ou de forme portant sur le présent document
  • Signalement d'un document non encore mentionné ici
  • Astuces techniques pour transcrire plus vite, mieux, plus facilement
  • Relecture des documents déjà transcrits
  • Volontariat pour transcrire des documents non encore transcrits:
    • En ce cas, insérez régulièrement des time codes (estampilles temporelles); voyez des exemples dans les documents déjà transcrits. Ils pourront être exploités pour renvoyer directement au bon moment du média source.
    • Prenez note du temps effectif de travail nécessaire, pour qu'on l'évalue au mieux

Avant tout travail, contactez la liste de diffusion; il n'est pas nécessaire d'être abonné pour y écrire, mais c'est souhaitable pour lire les réponses plus facilement. Vous confirmerez ainsi que personne d'autre ne s'occupe de la même chose. Quand vous aurez le feu vert vous serez noté dans ce document récapitulatif.

Procédure et critères pour choisir un document à transcrire:

  • une source publique, non restreinte, peut être plus motivante (diffusion plus facile)
  • opter de préférence pour un orateur connu ou prestigieux, une intervention, une conférence, un sujet important ou d'actualité
  • pour débuter et s'habituer à l'exercice, on choisira d'abord des documents de longueur modeste

Il est préférable de prendre contact avec l'intervenant par politesse et pour s'assurer de son accord; il pourra suivre la progressoin du travail, fournir des documents complémentaires, relire, vérifier, corriger...

On prendra soin également d'insérer régulièrement des timecodes dans le document transcrit pour retrouver plus facilement le passage concerné, tirer des liens depuis le document final mis en page vers le bon moment dans le fichier audio ou vidéo...

Pour évaluer correctement le travail nécessaire, veillez à prendre note du temps de travail effectif consacré au travail.

Après inscription dans le présent document, la mise à jour prendra effet sur le site web dans l'heure (une crontab s'exécute aux minutes 00 et 30; il pourra être nécessaire de recharger la page web dans le navigateur. Pour connaître la version mise en ligne, vérifiez la valeur de la mention Id en début de document (l'heure indiquée est exprimée dans le fuseau horaire UTC).

Contacts

Pour éviter de publier des adresses électroniques en clair, je rappelle que tout membre d'April dispose d'un alias construit comme suit: initiale de son prénom suivie de son nom (plus numéro éventuel pour les homonymies). Les accents disparaissent. Ainsi Jean Dupont peut normalement être joint à l'adresse jdupont À april POINT org.

Pour joindre le responsable du groupe de travail, vous pouvez lui envoyer un courrier électronique. L'adresse générique, attachée à la fonction, est définie comme suit: la chaîne resp-transcriptions, le nom de domaine suivant l'arobase étant encore une fois celui de l'association.

Volumétrie

Calcul effectué avec le programme Progress.pl. Penser à l'exécuter à chaque ajout de données...

Cette page rassemble une collection de médias sonores et vidéo.

Durées cumulées pour sources publiques:

  • 15:43:09 transcrit (95 médias)
  • 4:09:58 en cours (3 médias)
  • 6 d. 12:32:51 disponible (226 médias)

Interprétation: d. indique un nombre de jours; les autres nombres sont au format hh:mm:ss (heures, minutes, secondes) ou mm:ss (minutes, secondes).

Modes opératoires et conseils techniques

Liens et programmes utiles

  • Mplayer lit la plupart des formats vidéo utilisés; je ne pense pas qu'un autre programme libre en lise certains que lui ne sait pas lire. Il est (désormais) packagé par Debian. Il y a apparemment des questions compliquées de codes disponibles mais pas libres.
  • Un navigateur web en mode texte comme w3m (packagé par Debian) est parfois bien pratique.
  • Les URL débutant par itpc://... ??? TODO. Exemple: 1 sur la page 2.
  • Les URL débutant par mms:// se téléchargent avec le programme mimms (packagé par Debian).
  • Les URL débutant par rtsp://... Apparemment le paquet Debian livemedia-utils et son programme openRTSP se chargent de cela, mais je n'ai pas réussi à le faire fonctionner. ??? TODO. Exemple: [rtsp://212.95.67.121:554/permanent/c6/promos/070619_fr.rmvb?cloakport=80,554,7070 1] vu sur 2 vu sur 3.
  • Un flux RSS mentionne l'URL du média. Exemple: 1 trouvé sur la page 2 mentionne 3 (lien désormais cassé...).
  • Les URL débutant par pnm://...??? TODO Exemple: [pnm://212.95.67.121:7070/permanent/c6/promos/070619_fr.rmvb?cloakport=80,554,7070 1] vu sur 2 vu sur 3.
  • TODO: comment télécharger les vidéos annoncées au format RealPlayer? Exemple: 1 trouvé sur la page 2.
  • Validation XHTML.
  • Validation CSS.

Méthode générale

Traitons par exemple le cas d'un podcast.

Utiliser le navigateur Firefox et installer l'extension Firebug.

Dans la sous-fenêtre de Firebug, onglet Net, on voit dans la liste un nom de fichier (nom_de_fichier.mp3). Clic droit, Copy Location. Ça semble fonctionner avec Youtube et de nombreux sites.

Description plus détaillée: Télécharger n'importe quel contenu sur les sites de diffusions de vidéos et MP3.

Connaître la durée d'un document

Format Extension Commande
Ogg Vorbis ou Ogg Theora .ogg ogginfo
MPEG, AVI .mp3, .mp4, .mpg, .avi mplayer -identify; chercher ID_LENGTH (valeur exprimée en secondes); ne disposer que du début du fichier suffit parfois
Général .xxx Approximation avec: time player fichier

Programmes d'assistance à la transcription

Trans

Le programme trans du paquet Debian transcriber semble riche et prometteur. Si quelqu'un apprend à s'en servir et peut expliquer comment procéder efficacement, ses conseils seront les bienvenus (TODO). Attention, la page web du projet donnée dans la documentation a disparu; le projet est désormais hébergé sur Sourceforge.

Programme temporel simple

Le programme [bin/Play.pl Play.pl] permet de jouer des petites portions (intervalles) d'un média afin de les transcrire au fur et à mesure. Il dispose d'options d'ergonomie. Il joue le fichier indiqué dans la variable d'environnement MEDIA_FILE. Les valeurs des variables utilisées sont rappelées dans un xmessage.

On pourra l'interfacer avec l'éditeur de textes VIM en insérant les lignes suivantes dans son fichier de configuration:

" To use for transcriptions
:map <F1> !!perl ~/bin/Play.pl GotoPreviousInterval<CR>
:map <F2> !!perl ~/bin/Play.pl PlayCurrentInterval<CR>
:map <F3> !!perl ~/bin/Play.pl PlayNextInterval<CR>A
:map <F4> !!perl ~/bin/Play.pl GotoNextInterval<CR>A
:map <F5> !!perl ~/bin/Play.pl ShortenIntervalLength<CR>
:map <F6> !!perl ~/bin/Play.pl ShortenOverlapLength<CR>
:map <F7> !!perl ~/bin/Play.pl LengthenOverlapLength<CR>
:map <F8> !!perl ~/bin/Play.pl LengthenIntervalLength<CR>
:map <F9> !!perl ~/bin/Play.pl ReduceSpeed<CR>
:map <F10> !!perl ~/bin/Play.pl AccelerateSpeed<CR>
:map <F11> !!perl ~/bin/Play.pl ForwardTwoSeconds<CR>
:map <F12> !!perl ~/bin/Play.pl MarkUpOffset<CR>

Ceci mettra en place les effets suivants:

Touche Commande Effet
F1 GotoPreviousInterval Recule d'un intervalle.
F2 PlayCurrentInterval (Re)joue l'intervalle actuel.
F3 PlayNextInterval Joue l'intervalle suivant sans y avancer.
F4 GotoNextInterval Avance d'un intervalle.
F5 ShortenIntervalLength Réduit d'une seconde la durée de l'intervalle (durée minimale: 1 seconde).
F6 ShortenOverlapLength Réduit d'une seconde le recouvrement entre deux intervalles (durée minimale: 1 seconde).
F7 LengthenOverlapLength Augmente d'une seconde le recouvrement entre deux intervalles (durée maximale: celle de l'intervalle).
F8 LengthenIntervalLength Augmente d'une seconde la durée de l'intervalle (durée maximale: durée totale).
F9 ReduceSpeed Réduit la vitesse de 5% (vitesse minimale: 50%) et arrondit à 1 si on est 1 plus ou moins 3%.
F10 AccelerateSpeed Augmente la vitesse de 5% (vitesse maximale: 2) et arrondit à 1 si on est 1 plus ou moins 3%.
F11 ForwardTwoSeconds Avance de deux secondes.
F12 MarkUpOffset Insère le timecode actuel dans la transcription.

Note: VIM n'est en rien imposé ou nécessaire; la plupart des autres éditeurs de texte programmables pourront eux aussi être raccordés au programme Play.pl. Communiquez-moi les instructions de configuration et je les mentionnerai ici.

Programme syllabique plus évolué

Cette méthode analyse dans un premier temps le fichier sonore pour repérer les silences le ponctuant et y compter les syllabes. Elle repose sur le fait que SoX, à partir de sa version 14, est capable de jouer des portions de bande son découpées au centième de seconde près.

L'ensemble se compose de trois éléments:

  1. Un [bin/w.c programme C], qui analyse le fichier son (au format WAV 16 bits). On le compile sans difficulté particulière, par exemple avec gcc -Wall -O2 -o w wav.c.
  2. Un [bin/P.pl script Perl], qui exploite les données produites pour en jouer les portions repérées une à une.
  3. Quelques lignes de configuration instrumentant l'éditeur de texte employé pour faire appel à ce script.


Méthode opératoire pour appliquer le découpage syllabique

Méthode opératoire (on ne détaille pas les répertoires de stockage et chemins d'accès, ces choix étant laissés libres et ces notions supposées connues):

  1. Télécharger le fichier son (exemple utilisé ici: FreeSoft.ogg).
  2. Le convertir au format WAV 16 bits.
    1. On peut faire appel au programme oggdec (paquet Debian vorbis-tools): oggdec fichier.ogg
  3. Repérer les syllabes et silences de ce fichier: ./w FreeSoft.wav | tee TIMECODES.txt.

Ce dernier calcul dépend des choix de constantes faits dans w.c. Avec les réglages suivants:

#define MAX_SILENCE (1.0)       /* Always cut when silences that long (in seconds) */
#define MAX_DURATION  20        /* Maximum duration of the chunk to listen (in seconds) */

#define MIN_SYLLABLES 20        /* Minimum number of syllables to listen to (precedence smaller than MAX_SILENCE) */
#define MAX_SYLLABLES 40        /* Maximum number of syllables to listen to */

#define ENERGY_LEVELS 30            /* Range where we will map energy levels (ignoring the zero as silences) */
#define PER_SECOND_GRANULARITY 100  /* Basic time length */
#define MAX_SYLLABLES_PER_SECOND 10 /* Maximum speech rate */

On obtiendra plus de mille lignes:

0.00 5.31 5.31 0.42 35
5.31 11.24 5.93 0.72 35
11.24 17.84 6.60 0.43 33
17.84 29.56 11.72 1.64 33
[...]
5681.41 5688.26 6.85 0.23 40 
5688.26 5694.88 6.62 0.40 37
5694.88 5699.70 4.82 0.63 30
5699.70 5700.89 1.19 0.00 40

On incorpore ces lignes sous la ligne __DATA__ dans le fichier P.pl. Note: dans ce fichier une commande produit un bip pour clarifier les séparations (le fichier /usr/share/sounds/KDE_Beep_Pop.wav relève du paquet Debian kdebase-data):

my $beep = "play /usr/share/sounds/KDE_Beep_Pop.wav;";

On règle l'éditeur de textes (dans cet exemple nous détaillerons le cas de VIM) comme suit:

" Start the chunk
:map <F1> :.,$!perl P.pl<CR>
" 1 more second of overlap in the beginning
:map <F12> :.,$!perl PP.pl<CR>o
" Tag afterwards: type this on the first line of the rest of the transcription
:map <F8> Gdd''P<F1>
:syntax match TimeCode /^\[\[[0-9].*$/
:highlight TimeCode ctermfg=DarkGreen

" Cut word before cursor
:map <F5> i...<CR>...<ESC>

" Check mode
:map <F2> !!perl P.pl<CR>jdd
" Check mode, with more overlap
:map <F11> !!perl PP.pl<CR>o

" Wraps the current word (>= 2 letters) with "*"
:map <F9> hebi*<ESC>ea*<ESC>

On pourra sauvegarder ces quelques lignes dans un fichier transcription.vim. La première, qui définit le comportement de la touche F1, indique notamment à l'éditeur de textes VIM de transmettre au programme P.pl toute la suite du fichier, à partir de la ligne courante, jusqu'à la fin.

Note: on appelle timecode un marqueur temporel de type hh:mm:ss.cc (heures, minutes, secondes, centièmes; les heures et minutes ne sont pas toujours précisées quand elles sont nulles.

La touche F1 sert alors à la transcription (et les touches F2 ou F8 à l'insertion de timecodes dans les fichiers déjà transcrits; F11 ajoutant une seconde de contexte sonore au début). La touche F12 donne un peu plus de contexte au début de l'extrait courant. La touche F9 encadre le mot courant, s'il compte plus de deux lettres, d'astérisques.

La touche F5 coupe le mot en cours par des points de suspension:

comme ce...
[[ hh:mm:ss]] # ''ceci est une mention de timecode''
...ci

si cela correspond à une borne du morcellement sonore; ce mot sera recollé ensuite par le programme <a href="bin/Rush_to_TXT.sh">Rush_to_TXT.sh</a>.

Note importante: si l'on a décodé le média compressé (au format .ogg par exemple) en le transformant en .wav, la réactivité sera instantanée au lieu d'être de plus en plus longue: en effet, le format WAV permet au lecteur de se rendre directement au bon endroit du morceau, alors qu'il faut décoder tout le début dans le cas d'un format compressé. Le fichier P.pl, en présence d'une version WAV, la détectera à son extension de fichier et l'utilisera de préférence.

On met en place la variable d'environnement MEDIA_FILE pour renvoyer sur le fichier FreeSoft.ogg:

export MEDIA_FILE=FreeSoft.ogg

Alors, on peut débuter la transcription comme suit: vim -S transcription.vim FreeSoft.txt, dans un terminal de préférence sur fond sombre (par exemple un xterm en blanc sur noir — dans le cas contraire on pourra intervenir sur le réglage de couleur DarkGreen):

[[00.00]] syl=35 sil=0.42
[[05.32]]

Ces lignes apparaissent en vert foncé. La première indique: on débute à la seconde 0. C'est le début d'une séquence de 35 syllabes, terminée par un blanc de 42 centièmes de seconde, qui prendra fin au timecode 5.31. On peut réécouter la séquence en enfonçant à nouveau la touche F1. Le bip de fin marque la fin du blanc, et précède un petit temps de recouvrement réglé dans P.pl. La touche o sous VIM permet de réaliser la transcription de cette portion:

[[00.00]] syl=35 sil=0.42
Denis Devos: Vous écoutez Radio Campus, la radio de la communauté de
l'université libre de Bruxelles. Il est 10:18.
[[05.32]]

On presse ensuite la touche d'échappement ESC, se place sur le timecode suivant (05.32), et une nouvelle pression sur F1 produit:

[[05.31]] syl=35 sil=0.72
[[11.25]]

On procède ainsi de proche en proche jusqu'à la fin de la transcription. Pour noter un changement d'interlocuteur ou un nouveau paragraphe, on passe une ligne (avant ou après le timecode, ou entre deux timecodes, selon les cas. On veillera à laisser les timecodes toujours seuls sur leur ligne, et prendra garde à ne pas passer plusieurs lignes.

Ceci produit le fichier de [data/02/2002-11-27-Brevets-Radio-Campus.txt rushes]. Les timecodes pourront être exploités dans une application web ou autre, pour faire le lien entre la bande son et la transcription textuelle.

On transforme facilement le fichier de rushes en [data/03/2002-11-27-Brevets-Radio-Campus.txt version texte brut] un peu plus propre, avec le filtre [bin/Rush_to_TXT.sh Rush_to_TXT.sh]. Ligne de commande: sh Rush_to_TXT.sh rushes.txt > texte.txt.

À faire

Modes opératoires pour télécharger des documents particuliers

On évitera autant que possible la sauvegarde à partir d'un flux (mplayer -dumpstream) car elle est tributaire du réseau et peut induire des sauts dans la fluidité. Peu importe que le téléchargement d'une vidéo de 30 minutes prenne 40 minutes; c'est une opération asynchrone et la qualité importe.

Journal télévisé de TF1

  • Ouvrir le le site web. Cliquer sur «JT».
  • Depuis la page ainsi obtenue, cliquer sur «La dernière édition du journal télévisé».
  • Choisir le jour et l'heure (note: il y a une latence à la mise en ligne) puis cliquer sur «OK».
  • Dans la fenêtre qui s'ouvre, sauvegarder le code HTML dans un fichier.
  • Y rechercher une chaîne de la forme:
<PARAM NAME="SRC" VALUE="http://s.tf1.fr/FluxJt/jt20d18072007/jt20d18072007.asx"></PARAM>
  • C'est un fichier texte court:
$ w3m -dump http://s.tf1.fr/FluxJt/jt20d18072007/jt20d18072007.asx
mms://streamtf1.yacast.net/tf1jt/jt20d18072007.asf
  • Il suffit alors d'invoquer mimms sur cette dernière URL:
$ mimms mms://streamtf1.yacast.net/tf1jt/jt20d18072007.asf
  • Note: le format étant simple et lié à la date, on peut tenter de fabriquer directement l'URL.

Journaux télévisés de France 2 ou France 3

La méthode est la même. Détaillons le cas de France 3.

  • Se rendre sur la page du journal télévisé.
  • Dans le code HTML, repérer une chaîne de la forme (je l'ai coupée pour les besoins de la présentation):
<script src="http://videojts.francetv.fr/player/script.php?pn=VideoPlayer&
url=http%3A%2F%2Fvideojts.francetv.fr%2Fpublicite%2Fjt-asx.php%3Fchaine%3D
3%26url%3Dmms%3A%2F%2Fsdmc.contents.edgestreams.net%2Fhorsgv%2Fregions%2Fs
iege%2Finfos%2Ff3%2F1920%2FHD_1920_20070515.wmv&w=320&h=309&sc=1&as=1&aas=
1&tas=1&ssb=1&ecm=1&acds=1&asz=1&ds=2&hb=0&ecm=1"></script>
  • En extraire l'URL en mms:// qui nous intéresse:
mms%3A%2F%2Fsdmc.contents.edgestreams.net%2Fhorsgv%2Fregions%2Fsiege%2Finfos%2Ff3%2F1920%2FHD_1920_20070515.wmv
  • Certains caractères sont échappés, et remplacés par leur code hexadécimal précédé de %. Le filtre Perl suivant produira le résultat recherché:
#! /usr/bin/perl -w
use strict;
while (<>) {
  my $tmp = $_;
  $tmp =~ s{%([\da-f][\da-f])}{chr(hex($1))}gseix;
  print $tmp;
}
  • ... à savoir:
mms://sdmc.contents.edgestreams.net/horsgv/regions/siege/infos/f3/1920/HD_1920_20070515.wmv
  • Pour obtenir le texte de description du sujet qui nous intéresse:
  • Clic droit dans la zone
  • Choisir This Frame.../ Save This Frame As...
  • Il suffit alors d'invoquer un navigateur en mode texte comme w3m sur le fichier ainsi obtenu et de réaliser un copier-coller.
  • Note: le format de l'URL de la vidéo étant simple et lié à la date, on peut tenter de fabriquer directement l'URL.

Format général des URL des journaux télévisés

Note: Penser à sauvegarder les sommaires aux côtés du fichier de vidéo, ce qui facilitera plus tard le travail de repérage.

  • TF1 (attention: si on tarde trop à choisir un autre jour et que la vidéo du jour a déjà commencé, Iceweasel plante; cela ne fonctionne pas avec w3m):
    • Note: le jour même, apparemment, remplacer streamtf1.yacast.net par vodstream.tf1.fr; après quelque temps l'adresse change, mais les vidéos ne sont pas accessibles très longtemps.
    • 13h: mms://streamtf1.yacast.net/tf1jt/jt13d20092007.asf
    • 20h: mms://streamtf1.yacast.net/tf1jt/jt20d20092007.asf
    • Pour les titres, il faut naviguer et sauvegarder au cas par cas car un numéro long apparaît et je n'ai pas encore compris comment le prédire. Exemple: 0,,3549625,00-journal-televise-septembre-2007-20h-.html

Changer l'encodage ou le format d'un document multimédia

Attention! La plupart des transformations détruisent de l'information ou de la qualité de signal. Même si le format original n'est pas «ouvert», tant qu'il est lisible avec des logiciels libres, on pourra éviter de le dégrader.

Cette section évoluera au fur et à mesure des connaissances présentées et de ma compréhension du problème. Pour l'instant elle présente un cas particulier.

Quand on dispose en entrée de ceci:

  • 3 à 4 Go de données
  • au format MPEG-TV (ou plutôt du PAL 576i en MPEG-2)
  • issues de carte Tunet TNT USB Hauppauge

Et qu'on cherche à obtenir:

  • la même chose
  • dans un format plus léger (Ogg Theora?)
  • sans trop de perte de données

La réponse est en gros toujours la même: réencoder en Xvid ou en H.264. Ici il faudra probablement penser à ajouter un filtre de désentrelacement convenable en plus du filtre de débruitage.

La ligne de commande débutera comme suit:

mencoder -nosound -vo xvid -vf scale=1024x576,pp=fd,hqdn3d \
         -xvidencopts ...

Exemple détaillé:

Le fichier fait 703 Mo, le fichier original faisait 3.5 Go.

Voici les lignes de commandes. La qualité finale est bonne mais l'encodage est très très lent. Le fichier d'entrée est un MPEG-PS en 720x576.

mencoder -ovc xvid -vf scale=1024,pp=fd,hqdn3d -xvidencopts \
    bitrate=687:pass=1 -oac mp3lame -o /dev/null video-in.mpg
mencoder -ovc xvid -vf scale=1024,pp=fd,hqdn3d -xvidencopts \
    bitrate=687:pass=2 -oac mp3lame -o video-out.avi video-in.mpg

Suivent le log de ces deux commandes. Il y a des messages d'erreurs ou des warnings, mais la qualité et l'aspect ratio sont corrects.

$ mencoder -ovc xvid -vf scale=1024,pp=fd,hqdn3d -xvidencopts \
  bitrate=687:pass=1 -oac mp3lame -o /dev/null foobar.mpg*
MEncoder dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 3.20GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0xdc212800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  15000.0 kbps (1875.0 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
xvid: using library version 1.1.2 (build xvid-1.1.2)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [hqdn3d]
Opening video filter: [pp=fd]
Opening video filter: [scale w=1024]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
[PP] Using external postprocessing filter, max q = 6.
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))
==========================================================================
MP3 audio selected.
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
[PP] Using external postprocessing filter, max q = 6.
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 5 -> 4
SwScaler: reducing / aligning filtersize 5 -> 4
SwScaler: reducing / aligning filtersize 1 -> 1
SwScaler: reducing / aligning filtersize 1 -> 1
[swscaler @ 0x836c4d0]SwScaler: BICUBIC scaler, from yuv420p to yuv420p using MMX2
[swscaler @ 0x836c4d0]SwScaler: using 4-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0x836c4d0]SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0x836c4d0]SwScaler: using 1-tap MMX "scaler" for vertical scaling (YV12 like)
[swscaler @ 0x836c4d0]SwScaler: 720x576 -> 1024x576
videocodec: XviD (1024x576 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=1024x768, sampled=1024x576
xvid: bitrate setting is ignored during first pass
xvid: 2Pass Rate Control -- 1st pass
New_Face failed. Maybe the font path is wrong.n   0mb  A-V:0.004 [0:0]
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.

1 duplicate frame(s)!
Pos:   0.8s     22f ( 0%) 21.87fps Trem:   0min   0mb  A-V:0.082 [0:161]
Skipping frame!
ODML: Starting new RIFF chunk at 1023MB.  85min 3025mb  A-V:-0.012
[3346:179]
ODML: Starting new RIFF chunk at 2047MB.  38min 2979mb  A-V:-0.012
[3554:176]
Pos:6768.4s 169215f (100%) 22.90fps Trem:   0min 3018mb  A-V:-0.012
[3557:175]
Flushing video frames.
Writing index...
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.

Video stream: 3557.504 kbit/s  (444687 B/s)  size: 3009879524 bytes
6768.520 secs  169215 frames

Audio stream:  175.876 kbit/s  (21984 B/s)  size: 148806168 bytes
6768.696 secs

Et pour la deuxième commande:

$ mencoder -ovc xvid -vf scale=1024,pp=fd,hqdn3d -xvidencopts
bitrate=687:pass=2 -oac mp3lame -o foobar.avi foobar.mpg*
MEncoder dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 3.20GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0xdc212800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  15000.0 kbps (1875.0 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
xvid: using library version 1.1.2 (build xvid-1.1.2)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [hqdn3d]
Opening video filter: [pp=fd]
Opening video filter: [scale w=1024]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
[PP] Using external postprocessing filter, max q = 6.
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))
==========================================================================
MP3 audio selected.
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
[PP] Using external postprocessing filter, max q = 6.
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 5 -> 4
SwScaler: reducing / aligning filtersize 5 -> 4
SwScaler: reducing / aligning filtersize 1 -> 1
SwScaler: reducing / aligning filtersize 1 -> 1
[swscaler @ 0x836c4d0]SwScaler: BICUBIC scaler, from yuv420p to yuv420p using MMX2
[swscaler @ 0x836c4d0]SwScaler: using 4-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0x836c4d0]SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0x836c4d0]SwScaler: using 1-tap MMX "scaler" for vertical scaling (YV12 like)
[swscaler @ 0x836c4d0]SwScaler: 720x576 -> 1024x576
videocodec: XviD (1024x576 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=1024x768, sampled=1024x576
xvid: 2Pass Rate Control -- 2nd pass -- bitrate=687kbit/s
New_Face failed. Maybe the font path is wrong.n   0mb  A-V:0.004 [0:0]
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.

1 duplicate frame(s)!
Pos:   0.8s     22f ( 0%) 11.52fps Trem:   0min   0mb  A-V:0.082 [0:161]
Skipping frame!
Pos:6768.4s 169215f (100%) 14.50fps Trem:   0min 695mb  A-V:-0.012 [682:175]
Flushing video frames.
Writing index...
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.
Video stream:  682.107 kbit/s  (85263 B/s)  size: 577106446 bytes
6768.520 secs  169215 frames

Audio stream:  175.876 kbit/s  (21984 B/s)  size: 148806168 bytes
6768.696 secs


Couper un morceau d'une vidéo

Exemple: journal télévisé.

  • On prend le WMV d'origine
  • On le «streamdumpe» par mplayer
  • On le découpe avec la commande:
mencoder ''source''.wmv -oac copy -ovc copy -ss 00:07:17 -endpos 00:00:24 -o ''fichier_de_la_bonne_longueur''.wmv

Sauvegarder en local une vidéo introduite par un programme Flash

Plusieurs cas sont possibles:

  • Cas général: le site Keepvid propose une méthode générale pour les sites principaux (mais cela ne semble pas fonctionner chez moi; peut-être à cause de mes réglages réseau particuliers?).
  • Cas particulier: vidéo située sur le site YouTube

Le paquet Debian youtube-dl (attention à le prendre dans sa dernière version, Debian unstable, car le site web change parfois son système) rapatriera le fichier vidéo si on lui donne l'URL (dont plusieurs formes sont possibles). Exemple d'utilisation:

youtube-dl http://youtube.com/watch?v=dMH0bHeiRNg

Ceci produit le fichier dMH0bHeiRNg.flv, lisible avec mplayer.

  • Cas particulier: vidéo située sur le site MetaCafe

Le paquet Debian metacafe-dl (attention à le prendre dans une version récente, Debian unstable par exemple, car le site web change parfois son système) rapatriera le fichier vidéo si on lui donne l'URL (dont plusieurs formes sont possibles). Exemple d'utilisation:

metacafe-dl http://www.metacafe.com/watch/40191/animals_vs_humans/

Ceci produit le fichier 40191.flv, lisible avec mplayer.

  • Cas général: Vidéo chargée par un programme Flash

Il existe plusieurs types de programmes Flash, et les techniques changent en fonction.

  • Méthodologie pour cette pub sur Maniac World :
  • Avoir installé le paquet swfdec-mozilla (existe chez Debian; sa version 0.5.2-1 suffit) avant de démarrer le navigateur (Iceweasel)
    • Clic droit dans la zone de la vidéo: activer Playing
    • Attendre que le programme s'exécute et que la vidéo démarre
    • Clic droit: désactiver Playing
    • Clic droit: Properties
    • agrandir la fenêtre pop-up qui apparaît
  • On observe un média vidéo (Type: Flash Video; Flash Movie est le programme chargeur Flash en lui-même)
  • Attendre la fin du chargement du fichier FLV (100%) puis cliquer sur sa ligne et choisir Save media as
  • On peut aussi copier son lien (je n'ai pas trouvé comment l'insérer dans le tampon avec ce toolkit) pour le récupérer à part.
  • Méthodologie pour cette interview sur Ratiatum.com (cette méthode fonctionne aussi pour les vidéos du site veoh, où cette vidéo est en fait hébergée):
  • Avoir installé le paquet swfdec-mozilla (existe chez Debian; sa version 0.5.2-1 suffit) avant de démarrer le navigateur (Iceweasel)
    • Clic droit dans la zone de la vidéo: activer Playing
    • Attendre que le programme s'exécute et que la vidéo démarre
    • Clic droit: désactiver Playing
    • Clic droit: Properties
    • agrandir la fenêtre pop-up qui apparaît
  • On n'observe pas de média vidéo (Type: Flash Video; Flash Movie est le programme chargeur Flash en lui-même)
  • C'est le média de Type: Text qui compte. Attendre la fin du chargement (100%) puis cliquer sur sa ligne et choisir Save media as
  • On peut aussi copier son lien (je n'ai pas trouvé comment l'insérer dans le tampon avec ce toolkit) pour le récupérer à part.
  • Dans ce fichier on remarque:
fullPreviewHashPath="''http://content.veoh.com/flash/p/1143821/c19d20cb888f6297229a49890ac44dd4f5d115f7.flv?ct=bf9a5fe7a290e1daa8b27ab27b1f2eaf0b55f93e48ebbc33''"
  • C'est l'URL à rapatrier (y compris le code final, sinon on prend un 403 Forbidden)
  • Méthodologie pour Dailymotion : aucune solution sur poste client (à base de logiciels libres) n'a été trouvée à ce jour. Si vous en connaissez une, n'hésitez surtout pas à nous en faire part!

Court terme

  • Fixer des objectifs (à court terme)
    • transcrire en priorité les enregistrements courts présentant l'association
    • transcrire des documents (courts) ayant un retour sur investissement rapide, utilisables immédiatement, campagnes, public important.
  • Reprendre le document de référence historique (2008-06-07) pour le ventiler dans le nouveau site de l'April http://www.april.org/files/documents/html/table.html à ce stade il ne semble pas nécessaire d'y apporter de modification, conséquence du sérieux avec lequel le travail avait été mené
  • Rassembler et organiser les documents April mentionnant la transcription, sur le site de l'April ou sur le wiki
  • Réaliser un tutoriel accessible pour faciliter les contributions nouvelles
  • Réaliser une FAQ et autres documentations
  • Lancer une campagne de recherche de bénévoles pour augmenter le volume de travail global et diminuer la charge individuelle (par exemple : 1h de transcription par mois = 1 spot par mois pour une personne, ou 1 conférence pour 10 personnes)

moyen terme

  • Fixer des objectifs (à moyen terme)
    • Transcrire des enregistrements de conférences, avec un niveau de qualité privilégiant une exploitation rapide
  • Améliorer la documentation
  • Traductions des transcriptions
  • Transcription en langage des signes
  • Intégration des transcriptions dans les vidéos
  • Pérenniser les transcriptions de l'April par
    • la recherche de contributeurs
    • la promotion de la transcription
    • l'automatisation des transcriptions
    • l'automatisation de l'exploitation des transcriptions (flux de traduction et d'intégration)

long terme

  • Fixer des objectifs (à long terme)
    • reprendre l'ensemble des transcriptions selon les règles de qualité proposées par le document de référence historique
  • Exploiter la politique de transcription et d'accessibilité au profit de l'image de l'April

Documents

Documents de référence

A réaliser, à améliorer, ou à consulter.

Documents April mentionnant la transcription

Recherches

Liste (à organiser)

Documents externes traitant de la transcription