Etape 1 : récupérer les chaînes
Etape 2 : réaliser un batch d'enregistrement
VLC (VideoLan Client) est un magnifique logiciel open source pour visualiser des vidéos ou écouter de la musique, dont la particularité est de lire la majorité des formats du marché. Il est aussi capable de récupérer des flux de Télévision par internet. Free utilise d'ailleurs VLC pour diffuser ses chaînes en multiposte.
Si sous UNIX il est aisé de programmer un enregistrement grâce à un petit shell, sous Windows, c'est un peut plus compliqué, mais pas impossible !
Avant toute chose, il faut récupérer les chaînes. Pour free, il suffit de récupérer la playlist.
En ouvrant ce fichier, l'on peut voir les lignes suivantes :
#EXTM3U #EXTINF:0,2 - France 2 rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=201 #EXTINF:0,3 - France 3 national rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=202 #EXTINF:0,5 - France 5 rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=203 #EXTINF:0,6 - M6 rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=613 #EXTINF:0,7 - Arte rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=204 #EXTINF:0,8 - Direct 8 rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=372 #EXTINF:0,9 - W9 rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=373 #EXTINF:0,10 - TMC rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=497 #EXTINF:0,11 - NT1 ...
Pour enregistrer avec VLC, il y a deux possibilités, soit lancer l'enregistrement avec toutes les options - ce qui peut être long à mettre en place à chaque fois qu'il y aura un enregistrement, surtout s'il s'agit toujours du même paramétrage, seule la chaîne à enregistrer change - soit réaliser un batch qui va créer un fichier m3u afin d'y inclure tous les paramétrages.
Dans l'exemple suivant, les seuls paramètres retenus sont la chaîne et le répertoire d'enregistrement. Le reste sera encapsulé dans un fichier m3u généré à la volée par un batch.
@echo off
SET chemin=%2
SET chaine=%1
SET canal=0
SET jour=%date:~6,4%%date:~3,2%%date:~0,2%
SET heure=%time:~0,2%
SET minute=%time:~3,2%
SET seconde=%time:~6,2%
IF "%time:~0,1%"==" " SET heure=0%time:~1,1%
SET mytime=%jour%%heure%%minute%%seconde%
IF %chaine%==FRANCE2 SET canal=201
IF %chaine%==FRANCE3 SET canal=202
IF %chaine%==FRANCE4 SET canal=376
IF %chaine%==FRANCE5 SET canal=203
IF %chaine%==M6 SET canal=613
IF %chaine%==TMC SET canal=497
IF %chaine%==RTL9 SET canal=210
IF %chaine%==NT1 SET canal=374
IF %chaine%==ARTE SET canal=204
IF %chaine%==W9 SET canal=373
IF %chaine%==DIRECT8 SET canal=372
IF %chaine%==FRANCEO SET canal=238
IF %chaine%==ITELE SET canal=417
IF %canal%==0 GOTO AIDE ELSE GOTO ENREGISTRE
:ENREGISTRE
echo generation du fichier m3u de la chaine %chaine% (canal %canal%)
echo #EXTM3U > %chaine%.m3u
echo #EXTINF:0,Enregistrement >> %chaine%.m3u
echo #EXTVLCOPT:sout=#standard{mux=ts,dst="%chemin%\%chaine%-%mytime%.mpeg",access=file} >> %chaine%.m3u
echo rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=%canal% >> %chaine%.m3u
EXIT 0
:AIDE
echo VLC-ENR.bat {nom de la chaine en majuscules sans espaces} {chemin d'enregistrement}
EXIT 1
La difficulté provient du fait qu'il faut extraire à la main chaque chaîne avec son canal pour indiquer la correspondance au script. Sous unix, la puissance du shell est tel qu'il est possible d'automatiser tout cela afin de rafraîchir automatiquement la playlist.
La difficulté majeure n'est pas de lancer VLC, mais de l'arrêter. Heureusement, la planificateur de tâches Windows permet d'arrêter une tâche en exécution au bout d'un certain temps.
Dans le batch, les paramètres d'enregistrement sont fixés à mux=ts. Pour plus de détails sur les paramètres d'enregistrement, consulter l'aide VLC.
Plaçons le batch dans le répertoire de VLC.
Grâce au planificateur de tâche, l'on peut automatiser le lancement de l'enregistrement. Pour cela, il faut créer deux tâches. La première qui va générer le m3u d'enregistrement. La première tâche va donc exécuter notre batch, avec tous ses paramètres. Par exemple :
E:\programmes\VideoLAN\VLC\VLC-ENR.bat TMC T:
L'on peut voir que le batch E:\programmes\VideoLAN\VLC\VLC-ENR.bat (étape 2) est exécuté avec comme chaîne TMC et comme chemin T:. Ce qui signifie que l'enregistrement va créer sur T: un fichier nommé {chaîne}-{date-heure d'enregistrement}.mpeg.
Après cette tâche programmée à l'heure souhaitée d'enregistrement. Il faudra exécuter une seconde tâche, la minute d'après, qui exécutera le m3u :
E:\programmes\VideoLAN\VLC\vlc.exe TMC.m3u
Pour cette seconde tâche, l'astuce consiste à indiquer au bout de combien de temps l'enregistrement doit s'arrêter en programmant la durée d'exécution de la tâche.
Activer l'option "arrêter la tâche..." dans l'onglet paramètres
Votre enregistrement est prêt !
Une fois la vidéo enregistrée, il peut être utile de la transcoder dans un autre format pour, par exemple, l'emmener sur un lecteur vidéo portable. Pour cela, VLC permet de disposer d'un grand nombre d'options. Pour en savor plus, consultez cette astuce.