morceau d'image...

fév 18 2011

Convertir les fichiers TS de la Freebox (SD)

vue générale La Freebox permet d’enregistrer les émissions télé grâce à son disque dur intégré, et c’est bien pratique. Le format utilisé est le Time Shifting (fichier en .ts) et présente deux inconvénients majeurs : la taille plutôt imposante des fichiers et la difficulté de relire la vidéo, tous les lecteurs ne supportant pas ce format.

La première raison est déjà suffisante pour avoir envie de convertir dans un format moins gourmand en espace disque. Selon les conditions souhaitées de lecture, ce sera peut-être aussi  nécessaire : personnellement, je stocke ces vidéos sur mon PC, et j’utilise la fonction UPnP de la freebox pour accéder à ces vidéos, via le serveur Mediatomb. C’est très simple à mettre en œuvre, mais la liste des formats reconnus sont limités, et les fichiers TS n’en font pas partie.

Je ne suis certainement pas un spécialiste des formats vidéo, ça devient très vite complexe, et nécessite de bonnes connaissances pour maîtriser le sujet. Il ne s’agit donc ici que d’une méthode parmi d’autres, et n’utilise que des logiciels libres disponibles à la fois sous Linux et Windows, à savoir ProjectX et Avidemux.

Une autre approche est d’ enregistrer directement à partir du PC avec Qmagneto, voir cet article. La conversion sera faite lors de l’enregistrement, donc pas de soucis.

Le conteneur

Il existe différents conteneurs comme MPEG-4 (.mp4), Quicktime (.mov), AVI (.avi) et Matroska (.mkv). A quoi ça sert ?

Un film est généralement composé d’une piste video et d’une ou plusieurs pistes audio (on pourrait également ajouter les sous-titres, etc..). Pour celles-ci, il existe des codecs audio et video, chacun ayant ses propres caractéristiques (définitions supportées, compression, et plein d’autres très techniques).

Le conteneur est donc conçu pour contenir les données audio et vidéo dans un même fichier. Chaque conteneur supportant sa propre liste de codecs.

Matroska (ou MKV) signifie d’ailleurs « poupée russe » en russe. C’est un format rendu libre en 2003, et perçu comme le successeur d’AVI en raison de sa capacité à gérer les contenu en haute définition.

Cette notion de conteneur explique également pourquoi on peut par exemple lire tel fichier .AVI et pas un autre : le codec utilisé n’est pas le même, et votre système ne reconnait pas l’autre. Il suffit en général dans ce cas d’installer le-dit codec.

SD ou HD ?

Une dernière remarque : certaines chaînes diffusent maintenant des émissions en HD (Haute Définition) par opposition à SD (Standard Définition). Cet article ne traite en détail que du format SD.

Concernant le format HD, voilà tout de même quelques pistes :

ProjectX ne supportant par le codec H264, son équivalent sera tsMuxeR. Il n’est malheureusement pas disponible dans la logithèque Ubuntu, et il va falloir l’installer à la main. Rendez-vous sur cette page de la documentation Ubuntu-FR et exécuter les commandes indiquées une par une. Une fois ceci fait, vous aurez un raccourci dans le menu « Son et Vidéo ».

On peut ensuite utiliser MKVMerge pour créer un fichier MKV.

Une autre solution est d’utiliser Handbrake pour convertir directement le fichier TS HD en format MP4.

Je n’ai par contre trouvé aucun logiciel pour éditer ces fichiers en HD pour couper le début et la fin si nécessaire.

Décalage son/image

Le principal problème que l’on rencontre est le suivant : si l’on convertit directement le fichier TS en AVI, le résultat n’est pas vraiment probant : le son est désynchronisé par rapport à l’image… Pour comprendre ce qui se passe, il faut se rappeler que la freebox a enregistré un flux (la chaîne TV), et que ce flux peut comporter des micro-coupures (souvent sur la vidéo) et donc des images  endommagées ou manquantes. Si ces informations sont présentes dans le fichier TS (ce qui permet de le lire parfaitement, par exemple avec VLC), les logiciels de conversion traitant séparément l’image et le son perdent ces informations. Il en résulte que le son se décale progressivement.

ProjectX

Il faut donc utiliser un logiciel comme ProjectX (disponible dans la logithèque Ubuntu, et donc installable en quelques clicks) qui va permettre d’extraire séparément du fichier TS les différentes pistes, principalement le son et la vidéo, tout en s’assurant de conserver la synchronisation.

A noter que ProjectX étant développé en Java, on peut l’utiliser quelque soit la plateforme (Windows, Linux ou MAC).

Avidemux

Une fois ceci fait, il devient alors très facile de ré-encoder tout cela avec un codec DIVX par exemple. Pour ce faire, j’utilise Avidemux (disponible également sous windows), et lui aussi très simple d’utilisation. Il faudra juste faire attention au format de l’image, afin qu’elle ne soit pas déformée.

Si vous voulez en savoir plus sur l’utilisation d’Avidemux avant de vous lancer, vous pouvez aller lire cet article, et regarder la vidéo qui donne un très bon aperçu du logiciel.

Démonstration

Une fois récupéré le fichier TS de la freebox sur le PC avec un client FTP (voir article de Free), ouvrez-le avec ProjectX. Ne prenez pas peur en voyant l’interface assez complexe, tout va bien se passer :

projectx - fenêtre principale

Une fois le film chargé, cliquer sur le bouton « prepare« , une nouvelle fenêtre s’ouvre : vérifier que l’action « demux » est bien sélectionnée (c’est le défaut), puis cliquer sur le bouton « Start » :

projectx - fenêtre de traitement

Une fois le traitement terminé, ProjectX aura généré plusieurs fichiers. Ceux qui nous intéressent sont le fichier video MP2 et les deux fichiers son MP2 (eh oui, nous sommes sur Arte, et il y a deux bandes son, l’une en allemand, l’autre en français).

projectx - fin du traitement

Voilà, merci ProjectX, simple et efficace.

Reste maintenant à réassembler tout ça en utilisant un codec DIVX dans un conteneur AVI. Pour ce faire, nous allons utiliser Avidemux (également disponible sous Windows).

Avidemux

Lancer Avidemux et charger le fichier .m2v ; une première fenêtre vous demande de l’indexer, répondre oui :

indexer

Une fois le fichier indexé et chargé, il se peut que l’image soit déformée : Avidemux retire les bandes noires automatiquement, et selon le format de diffusion de l’émission, on peut obtenir le résultat suivant : ne vous inquiétez pas, on va gérer cela tout-à-l’heure.

avidemux - fichier chargé et indexé

Il faut maintenant charger la piste son : il s’agit de l’un des deux fichiers MP2 générés par ProjectX précédemment. Pour identifier celui en langue française, le plus simple est de le lire (avec VLC par exemple). Une fois le bon fichier trouvé, dans le menu principal de Avidemux, cliquer sur Audio, puis Piste principale ; choisir « MP3 externe » comme Source audio, puis bouton Browse (Parcourir) et sélectionner le fichier extrait par ProjectX.

Fenêtre piste audio principale

Il faut maintenant choisir les codecs pour la conversion : personnellement, je choisis MPEG-4 pour la vidéo et MP3 pour le son (on peut laisser en mode Copie pour le son je crois). Pour le conteneur (Format), ce sera AVI.

choisir les codex et le conteneur

Nous y sommes presque, reste à s’occuper du format d’image, puisqu’elle est déformée : cliquer sur le bouton Configuer du codec Vidéo, puis cocher « As Input » pour Pixl Aspect Ratio, et valider :

xvid configuration

Voilà, tout est prêt, il n’y a plus qu’à cliquer sur le bouton Enregistrer, choisir un emplacement, enregistrer le nouveau fichier avec l’extension .AVI… et patienter, cela peut prendre plusieurs heures, selon la puisssance de votre PC et la longueur de la vidéo.

Encoding...

Un fois l’encodage terminé, vous avez un fichier .AVI que vous pouvez utiliser comme bon vous semble.

Nettoyage

Terminé ? peut-être pas car la programmation des programmes TV étant ce qu’elle est, il est recommandé de prendre un peu de marge pour le début et la fin de l’enregistrement : rien de pire que d’avoir enregistré une émission et de manquer les cinq dernières minutes !

Pour couper ces morceaux inutiles, Avidemux fera parfaitement l’affaire. Dans mon cas, le début de la vidéo est correct, je dois juste couper la fin.

Recharger le fichier et se déplacer à la fin de l’émission (utiliser le curseur, ou les boutons de déplacement pour se positionner au bon endroit), puis cliquer sur le bouton A en bas de la fenêtre. Par défaut, Avidemux va automatiquement sélectionner toute la fin de la vidéo et l’indiquer avec deux petits crochets.  Le bouton A marque le début d’une sélection, et le bouton B la fin :

couper la fin de la vidéo

Puis Menu Edition – Supprimer pour effacer cette partie inutile. Procéder de la même façon pour le début du fichier si nécessaire, ainsi que pour toute éventuelle publicité diffusée en cours d’émission.

Une fois ceci fait, il faut enregistrer le nouveau fichier, mais cette fois plus besoin de modifier l’encodage. Choisir donc le mode Copie à la fois pour l’audio et la vidéo, et cliquer sur Enregistrer.

en mode copie cette fois

Cette fois l’opération sera beaucoup plus rapide, puisqu’il n’y a pas de ré-encodage :

la copie est rapide

Voilà, le ficher est définitivement prêt.

Publié par Pascal à 19:32

7 commentaires à cet article ↓

  • 1 yvan le 02 juil 2011 à 13:26

    J’adore projectX qui malheureusement ne gère pas la HD (h264), bien triste de devoir trouver un autre soft pour editer et convertir les ts

  • 2 Gourmet le 14 juil 2011 à 00:50

    Petite expérience dans le domaine … mais aucune solution à ce jour.
    Les enregistrements s’effectuent via le multiposte avec tous les PID possibles (5 sur Arte, 4 sur F2) et en bas-débit donc en H.264+AAC.
    Bien, pas de soucis, ça fonctionne correctement depuis 2009 maintenant (on ne perd plus d’images).
    Le premier objectif est de découper c’est à dire supprimer le début et la fin voire, accessoirement, le milieu s’il y a pub (j’enregistre très peu les chaînes où il y a de la pub au milieu car, de toutes les manières, ces dernières croient bon de rappeler au retour de pub ce qu’on regarde : grosses futées).
    Le second objectif et de place le tout dans un conteneur Matroska.
    Dernière chose : je suis sous Linux et exclusivement sous Linux (ou freeBSD).

    1er point : j’ai abandonné avidemux. Pas faute d’avoir attendu des années pour disposer d’une version opérationnelle.
    avidemux fonctionne très bien avec du MPEG2 (en vidéo) mais est lamentable avec du H.264.
    Jusqu’à il y a un an à peu près il lui était quasiment impossible de lire du H.264, le curseur de temps se vautrait.
    Ça c’est réglé mais avidemux a un sacré souci avec les images B.
    A tel point que lorsqu’on a pris 5 bonnes minutes pour ajuster au cordeau la découpe et qu’on enregistre le résultat (en MKV) avidemux prétend que vous n’êtes pas sur une image correcte et se termine (proprement) sans proposer quoi que ce soit d’autre.
    Qui plus est, la précision du timecode (une fois l’index reconstruit) n’est pas de ce monde.

    Donc, poubelle, ras-le-bol.

    2ème point. FFMPEG place correctement dans un conteneur MKV mais uniquement la video et la première piste audio. il faut procéder par ajout successif avec MKVmerge pour obtenir un fichier complet. Pas glop.
    Et puis, on ne sait pas où découper vu que c’est une commande en ligne.

    3ème point. VLC permet de changer de conteneur TS -> MKV sans être obligé de « tout sortir » puis de rentrer tout à la main. Mais bon, on ne sait toujours pas où découper (commande en ligne).

    4ème point : Project X est très bien mais pour du MPEG2 vidéo pas du H.264.

    5ème point : nous avons KdEnlive qui est un éditeur. Superbe.
    Sauf qu’il lui est impossible de visualiser le flux vidéo car il n’apprécie pas l’absence de timecode. Sinon, découper au son avec KdEnlive, ça fonctionne. Mais faut pas chercher la précision à l’image près.
    Qui plus est, chargé un clip avec KDEnlive faut avoir du temps devant soi.

    6ème point. On peut bien entendu contourner le souci du timecode en reconvertissant, à l’aide de FFMPEG, le ts d’origine en avi ou en mkv par exemple et en ne gardant que la vidéo et une piste audio en vue de la découpe.
    Ça prend 3 fois la place (le ts d’origine, l’avi et le MKV à produire) et 3 fois le temps (conversion ts vers avi) puis conversion ts vers MKV avec VLC en tenant compte du début et de la fin. Faut en vouloir !

    Mais ça ne fonctionne pas sous KdEnlive : ce dernier déroule bien le son mais reste scotché aux premières secondes de video ==> toujours inutilisable dans KdEnlive.
    Et un MKV intermédiaire plante KdEnlive ! Le pompon !

    7ème point : utilisons tsMuxer.
    tsMuxer permet de remuxer en ajoutant un timecode. Qui corrige l’absence de précision du FPS dans le flux d’origine.
    Nickel pour KdEnlive par exemple.
    Ben ouais sauf que le son est décalé. Pourquoi ? Parce qu’il y a une indication de décalage dans le flux original et que cette indication ne semble pas reprise par tsMuxeR malgré sa notification.
    Je rigole …
    Chargement dans KdEnlive ensuite : 5 minutes pour un film SD de 2 heures.
    Découpage visuel (à l’image uniquement vu que le son …).
    Puis redécoupage total avec VLC ==> décalage observé dans les images d’environ 1s.
    Comme quoi KdEnlive n’est pas fiable (à moins que ce ne soit VLC).

    Procédure : environ 1/4 heure de traitement pour un fichier de 1,5 Go (2h). Ceci sur un Pentium M il est vrai.
    Gain de place estimé : env. 25% (soit 1,1 Go au final).
    La conversion via tsMuxeR peut être automatisée (à la fin de l’enregistrement) de même que la conversion VLC. Reste le repérage du début et de la fin dans KdEnlive qui est forcément manuel.

    Conclusion : c’est un beau merdier.
    Heureusement que je ne cherche pas à supprimer de la pub au milieu ! Là ce serait 1 h de traitement par fichier.

    Donc aucune solution à ce jour pour de la découpe simple et précise pour ce flux H.264 sous *nix.
    Chiant tout de même.
    A quand un éditeur qui ouvre toutes les pistes, permet de pointer précisément la découpe et de sauvegarder le tout dans un MKV ?

    db

  • 3 Pascal le 14 juil 2011 à 10:32

    Merci pour toutes ces infos, très intéressantes. Restons optimistes, ça viendra bien un jour ! la HD est encore assez récente finalement, il faudrait un H264demux, ce serait le top !!

  • 4 Pascal le 19 sept 2011 à 18:35

    Voir aussi cet article de Taltan pour les conversions HD :
    http://www.taltan.fr/post/2011/09/17/Convertir-les-enregistrements-videos-d-une-FreeBox

  • 5 Pascal le 08 nov 2011 à 21:26

    À noter aussi : arista (http://www.transcoder.org/) : interface minimaliste, mais conversion qui a l’air efficace, et le nombre de « presets » est complet. Une fois convertit en divx, on peut l’éditer avec avidemux (mais il ne prend pas les .ts en entrée).

  • 6 3fois8 le 16 déc 2011 à 12:51

    Bonjour
    J’ai toujours un problème avec les gros fichiers TS venant de la chaîne Arte. Finalement, en passant par Quiktime pour élaguer, l’enregistrement s’est fait en mov. – la case langue française était cochée sous VLC auparavent.
    J’ai utilisé Leawo Free Mac Video Convecter pour obtenir un fichier AVI. Enfin, j’ai lancé ffmpegx pour avoir l’image en 16:9 comme à l’origine.
    ProjectX n »a pas voulu éditer le fichier vidéo. Le log « dépassait 6 MB : trop d’erreurs » (?).
    Mais je « veux » y arriver pour les fichiers TS d’ARTE. Ça doit être possible
    J’essayerai les manip avec un documentaire moins « lourd ».
    Merci à tous pour toutes les explications et les liens donnés dans les réponses.

  • 7 sebnutt le 07 avr 2014 à 14:48

    VidCoder, basé sur le noyau Handbrake, permet de couper le début et la fin d’une vidéo, et surtout de recalculer proprement les timecodes de synchro audio / video lorsque ceux-ci sont erronnés dans le flux TS.

Laisser un commentaire