Tutoriel Enregistrement : Différence entre versions

De La Quadrature du Net
Aller à la navigationAller à la recherche
(Radio)
(rtmpdump)
Ligne 46 : Ligne 46 :
 
<code>rtmpdump -v -r rtmp://... > fichier.flv</code>
 
<code>rtmpdump -v -r rtmp://... > fichier.flv</code>
  
 +
Pour de nombreux sites il est nécessaire de fouiller le code HTML pour obtenir l'url du flux, voire rechercher dans le .swf (qui est souvent compressé, cf. cws2fws dans ffmpeg). Par exemple sur le site non-web d'itélé :
 +
 +
<code>url="$(wget -O - http://service.canal-plus.com/video/rest/getVideosLiees/itele/$(wget -O - http://www.itele.fr/emissions/magazine/le-jt-decale | grep 'id: ' | sed "s/.* id: '//;s/'.*//") | sed 's/.*<HAUT_DEBIT>//;s,</HAUT_DEBIT>.*,,')"; rtmpdump -r "$url" -o "${url##*/}"</code>
  
 
== wget ==
 
== wget ==

Version du 29 mars 2011 à 23:05

Cette page fait partie du projet MediaKit

Les logiciels

VLC

Pour enregistrer un flux depuis VLC, on peut se reporter à la documentation officielle

En résumé :

En ligne de commande

En ligne de commande, il suffit de taper

vlc "$flux" --sout file/$muxer:$fichier

Avec

  • $flux : le flux à enregistrer
  • $muxer : un des formats de sortie supportés par vlc (ogg pour le format OGG, ps pour le format MPEG2-PS, ts pour le format MPEG2-TS.)
  • $fichier : Le nom du fichier sous lequel on souhaite enregistrer la vidéo.

Sous Mac OS X, utiliser /Applications/VLC.app/Contents/MacOS/VLC pour la ligne de commande, à la place de 'vlc'.

Avec l'interface graphique

  • ouvrir le flux

Fichier => Ouvrir le flux réseau.

  • Enregistrer

Fichier => Assistant de diffusion => Transcoder/Sauvegarder => Suivant => Élément de la liste de lecture => Choisir les éventuelles options de transcodage et d'encapsulation, préciser un nom et choisir "finir".

De préférence pour l'édition essayer de transcoder directement le flux en format MPEG1 OU MPG2 OU MP4 encapsulé MOV ou MPG ou AVI

mplayer

mplayer -cache 4192 -dumpstream "$flux" -aid <x> -dumpfile $fichier

Avec

  • $flux : le flux à enregistrer
  • $fichier : Le nom du fichier sous lequel on souhaite enregistrer la vidéo.
  • - aid <x> : La piste audio à enregistrer le cas échéant, notamment pour le Parlement européen. Attention, les numéros ne correspondent pas toujours à la même langue. Il est conseillé de faire un test au préalable, si possible.

mmsrip

Le protocole MMS est un protocole propriétaire développé par microsoft. Il est obsolète, mais malheureusement encore utilisé pour certains flux, tels le streaming de lci ou du Conseil de l'Union Européenne.

Utiliser mmsrip

Mmsrip-0.7.0.png

rtmpdump

Pour l'enregistrement d'un flux live, utiliser les options suivantes avec une redirection vers un fichier :

rtmpdump -v -r rtmp://... > fichier.flv

Pour de nombreux sites il est nécessaire de fouiller le code HTML pour obtenir l'url du flux, voire rechercher dans le .swf (qui est souvent compressé, cf. cws2fws dans ffmpeg). Par exemple sur le site non-web d'itélé :

url="$(wget -O - http://service.canal-plus.com/video/rest/getVideosLiees/itele/$(wget -O - http://www.itele.fr/emissions/magazine/le-jt-decale | grep 'id: ' | sed "s/.* id: '//;s/'.*//") | sed 's/.*<HAUT_DEBIT>//;s,</HAUT_DEBIT>.*,,')"; rtmpdump -r "$url" -o "${url##*/}"

wget

Pour certains flux, en plus des fichiers fixes, notamment les radios en mp3 sur http, il est possible d'utiliser wget directement, et de l'interrompre quand on veut.

cat

Certains sites commencent enfin à utiliser HTML5 pour diffuser des vidéos, mais nous compliquent la vie en pointant sur des playlists de playlists de morceaux de fichiers au format MPEG Transport Stream.

Ce format n'ayant pas d'entête spécifique au début, on peut les concaténer directement avec cat pour autant que les morceaux aient les mêmes caractéristiques (codec, bitrate…).

par exemple :

http://svtplay.se/v/2264028/wikirebels___the_documentary?cb,a1364145,1,f,-1/pb,a1364142,1,f,-1/pl,v,,2264028/sb,p118750,1,f,-1

En parcourant le code source html, en plus d'un EMBED classique pour Flash, on voit un tag VIDEO :

<video id="httpStreaming-video" width="640" height="360" src="http://www0.c90910.dna.qbrick.com/90910/od/20101209/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_vod.m3u8" type="video/mp4" controls></video>


Le fichier pointé par http://www0.c90910.dna.qbrick.com/90910/od/20101209/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_vod.m3u8 contient une playlist au format [[1]] : #EXTM3U

  1. EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=258847

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer1_vod.m3u8

  1. EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=697357

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2_vod.m3u8

  1. EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=143492

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer3_vod.m3u8

  1. EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=47622

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer4_vod.m3u8

Qui pointe sur plusieurs playlists différentes suivant le bitrate que le client souhaite utiliser. Prenons le plus élevé tant qu'à faire :

http://www0.c90910.dna.qbrick.com/90910/od/20101209/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2_vod.m3u8

#EXTM3U

  1. EXT-X-VERSION:2
  2. EXT-X-ALLOW-CACHE:YES
  3. EXT-X-TARGETDURATION:10
  4. EXT-X-MEDIA-SEQUENCE:0
  5. EXTINF:10,

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2/5944_Period1/segment0.ts

  1. EXTINF:10,

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2/5944_Period1/segment1.ts

  1. EXTINF:10,

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2/5944_Period1/segment2.ts

  1. EXTINF:10,

IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2/5944_Period1/segment3.ts

  1. EXTINF:10,

Avec un peu de magie et de shell on peut récupérer tous les morceaux de 0 à 344 et les recoller simplement :

for n in $(seq 0 344); do wget http://www0.c90910.dna.qbrick.com/90910/od/20101209/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1/IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2/5944_Period1/segment$n.ts; cat segment$n.ts >> IN-2010-1209-BIGOILFULKORTAD-hts-a-v1_Layer2_vod.ts; rm segment$n.ts; done

(Attention Mac OS X a gseq au lieu de seq.)

Les flux

Trouver un flux

Sur

TV Freebox

rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=658&flavour=sd => Nolife
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd => France 2
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=202&flavour=sd => France 3 National
rstp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=376&flavour=sd => France 4
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=203&flavour=sd => France 5
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=204&flavour=sd => Arte
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=372&flavour=sd => Direct 8
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=497&flavour=sd => TMC
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=374&flavour=sd => NT1
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=666&flavour=sd => NRJ 12
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=226&flavour=sd => La Chaîne Parlementaire
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=692 => Public Sénat
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=400&flavour=sd => BFM TV
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=679&flavour=sd => i> TÉLÉ
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=678&flavour=sd => Virgin 17


Flux Radio

Attention certaines radios sont multiplexés sur une seule url (comme BFM radio avec NRJ par exemple), et lancer un enregistrement dans VLC ne fonctionnera pas, et on enregistrera seulement le premier flux, qui n'est bien sûr jamais le bon. Il faut soit utiliser le flux officiel de la radio, soit passer par la ligne de commande avec VLC (playlist.m3u semple contenir les options nécessaires dans des entrées VLCOPTS).

Par exemple, l'entrée de playlist.m3u pour BFM:


#EXTINF:0,10015 - BFM
#EXTVLCOPT:ts-es-id-pid
#EXTVLCOPT:no-video
#EXTVLCOPT:audio-track-id=1005
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=100011

On pourra enregistrer le bon flux avec :

vlc 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=100011' --sout 'file/ps:testbfm.mpeg' --ts-es-id-pid --no-video --audio-track-id=1005

Le conseil de l'Union Européenne

Liste de flux diffusés par le conseil de l'Union Européenne. Sont listés :

  1. Le flux
  2. Le canal audio (sous mplayer, aid est l'option permettant choisir ce canal [TODO : Sous vlc?]).
  3. Le code iso 639 du pays ainsi que le nom de la langue en vo.
mms://wm.streampower.be/ceulive_1 -aid 1 => ? 
mms://wm.streampower.be/ceulive_1 -aid 3 => Original
mms://wm.streampower.be/ceulive_1 -aid 5 => pt (Português)
mms://wm.streampower.be/ceulive_1 -aid 6 => ?
mms://wm.streampower.be/ceulive_1 -aid 7 => ?
mms://wm.streampower.be/ceulive_1 -aid 8 => ?
mms://wm.streampower.be/ceulive_1 -aid 9 => fr (Français)
mms://wm.streampower.be/ceulive_1 -aid 10=> es (Español)
mms://wm.streampower.be/ceulive_1 -aid 11=> se (Svenska)
mms://wm.streampower.be/ceulive_1 -aid 12=> et (Eesti)
mms://wm.streampower.be/ceulive_1 -aid 13=> el (Ελληνικά)
mms://wm.streampower.be/ceulive_1 -aid 14=> nl (Nederlands)
mms://wm.streampower.be/ceulive_1 -aid 15=> ?
mms://wm.streampower.be/ceulive_1 -aid 16=> de (Deutsch)
mms://wm.streampower.be/ceulive_1 -aid 17=> pl (Polski)
mms://wm.streampower.be/ceulive_1 -aid 18=> sk (Slovenčina)
mms://wm.streampower.be/ceulive_1 -aid 19=> sl (Slovenščina)
mms://wm.streampower.be/ceulive_1 -aid 20=> mt (Malti)
mms://wm.streampower.be/ceulive_1 -aid 22=> bg (Български)
mms://wm.streampower.be/ceulive_1 -aid 23=> ro (Română)
mms://wm.streampower.be/ceulive_1 -aid 24=> it (Italiano)
mms://wm.streampower.be/ceulive_1 -aid 25=> en (English)


Par exemple, pour lancer le flux en français avec mplayer, on pourra choisir :

mplayer mms://wm.streampower.be/ceulive_1 -aid 9

Le Parlement Européen

Page du live du Parlement européen : http://www.europarl.europa.eu/wps-europarl-internet/frd/live/live-video?language=fr

En général, le flux de la plénière est : mms://livewms.europarl.europa.eu/reflector:56235 . Si tel n'était pas le cas, la manip serait simple : il suffira de trouver les .aspx ou .asx (exemples : http://www.europarltv.europa.eu/parliamentlive.aspx ou http://live.europarl.europa.eu/asx/ext/plenary01.asx) indiqués sous l'écran de la page du live, quand on a cliqué sur l'icône devant "Adresse de diffusion du flux". Il faudra ensuite télécharger ces .aspx ou .asx puis ouvrir le fichier ainsi créé, qui contient le flux tant souhaité.

Le mms renvoie sur le .asx et ça boucle suivant les clients

mplayer
Pendant les auditions des commissaires désignés au Parlement, les codes des langues n'étaient pas les mêmes que ceux listés ci-dessus :

mms://livewms.europarl.europa.eu/reflector:36131 -aid 1 => Sans traduction
mms://livewms.europarl.europa.eu/reflector:36131 -aid 2 => Allemand
mms://livewms.europarl.europa.eu/reflector:36131 -aid 3 => Anglais
mms://livewms.europarl.europa.eu/reflector:36131 -aid 4 => Français
mms://livewms.europarl.europa.eu/reflector:36131 -aid 5 => Italien
mms://livewms.europarl.europa.eu/reflector:36131 -aid 6 => Néerlandais (?)
mms://livewms.europarl.europa.eu/reflector:36131 -aid 7 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 8 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 9 => Espagnol
mms://livewms.europarl.europa.eu/reflector:36131 -aid 10 => Portugais
mms://livewms.europarl.europa.eu/reflector:36131 -aid 11 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 12 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 13 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 14 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 15 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 16 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 17 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 18 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 19 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 20 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 21 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 22 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 23 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 24 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 25 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 26 => ?
mms://livewms.europarl.europa.eu/reflector:36131 -aid 27 => ?

Assemblée Nationale

Pour récupérer tous les flux VOD flash d'un projet de loi sur le site de l'assemblée nationale, utiliser les scripts rtmplist et rtmpdump :

 wget http://dl.rom1v.com/scripts/rtmp{list,dump}
 chmod +x rtmp{list,dump}

(le programme flvstreamer est nécessaire)

rtmplist récupére les url de tous les débats vidéos de la LOPPSI et les écrit sur stdout. rtmpdump télécharge dans le répertoire courant chacun des flux lus sur stdin.

En particulier, pour récupérer les url et télécharger tous les flux en une fois :

 ./rtmplist | ./rtmpdump

Quand le téléchargement se bloque (Ã cause d'une configuration sur le serveur), appuyer sur Ctrl+C une fois, il continuera là ou il en était.

Pour les réencoder en ogg theora :

 ffmpeg2theora --optimize file.mp4

Flux divers

Vidéo

  1. MS ASF : mms://a931.l936240088.c9362.e.lm.akamaistream.net/D/931/9362/v0001/reflector:40088
  2. real media : rtsp://a738.l936235501.c9362.e.lr.akamaistream.net/live/D/738/9362/v0001/reflector:35501

(voir flux du PE) Pour les personnes ayant la TV sur la freebox, utiliser de préférence ce flux, celui d'akamaistream étant d'une qualité bien moindre.

  1. mms://vipmms9.yacast.net/bfm_bfmtv
  1. mms://live-wmv.canalplus.fr/reflector:25782
  • Flux Live site [[2]]
  1. Flux RTMP décrit dans http://live.novastream.fr/fondapol/config.xml
  2. rtmpdump -v -r rtmpt://novastreamflive.cdnetworks.net/novastreamflive/nova/fondapol > fondapol.flv

Radio

Programmer un enregistrement

Il est possible de programmer un enregistrement grace au crontab (pour éditer, taper crontab -e). Le format est le suivant :

#mm hh jdm MM jds  command

Avec

  1. mm = Minutes
  2. hh = Heures
  3. jdm = jour du mois
  4.  MM = mois
  5.  jds = jour de la semaine

Une étoile (*) représente un joker.

Par exemple pour enregistrer une émission de France 2 le 10 décembre à 20h30 et pour une durée de 30 minutes, on pourra faire :

30 20 10 12 * mplayer -cache 4192 -dumpstream 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd' -dumpfile /tmp/Émission_`date +\%T`.ts
00 21 10 12 * pkill -9 -f mafreebox.freebox.fr