Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Les Pérégrinations numériques du Gluon du Net

Le Gluon du Net est un acteur de la communauté du logiciel libre dont il assure la promotion et le support auprès d'autres gluons également attirés par la philosophie du "Libre".

Découper et convertir les fichiers vidéos ts de la Freebox sous Linux

Publié le 10 Octobre 2010 par Le Gluon du Net in Tutoriels

Cela fait un moment que je recherche un moyen d'exploiter mes vidéos enregistrées sur la Freebox sous Linux. Mais jusqu'ici, je bloquais sur l'étape du découpage, pour retirer les parties inutiles situées avant et après le film, enfin ça c'était avant d'utiliser TSMuxer.

 

1. Retrait du début et de la fin de la vidéo pour isoler un film

Tout d'abord vous devez rapatrier du FTP de la Freebox votre fichier vidéo. Ensuite, rendez-vous sur le site de SmartLabs pour télécharger le programme TsMuxer . Décompressez l'archive et lancez Ts MuxerGUI.

Dans l'onglet "Input",  cliquez sur "Add" et ajouter sélectionné le fichier .ts à découper et vérifier que l'option "TS Muxing" est cochée.

 

screenshot1-copie-2.png

 

Maintenant dans l'onglet "Split & cut", vérifiez que "Splitting" est coché sur "No Split" et cochez "Enable cutting". Ici nous allons indiquer en secondes le début et la fin du film, tout ce qu'il y aura avant et après ces deux repères sera effacé. Pour un souci de précision, nous allons indiquer ces 2 temps en seconde.Pour cela démarrer le visonnage de votre film et noter le temps de début et de fin du film à la seconde près. Ensuite, convertissez ces 2 temps en secondes. Vous pouvez à présent remplir les champs "Start" et "End" avec le temps correspondant et n'oubliez pas de pointer la mesure de temps sur "s".

 

screenshot2-copie-1.png

 

A présent vérifiez la destination du nouveau fichier à enregistrer dans la partie "Output" et lancer l'opération en cliquant sur "Start muxing".

L'opération ne dure que quelques minutes pour un fichier de moins de 5 Go. Vérifiez le fichier vidéo obtenu et modifiez, si nécessaire, les repères de temps de quelques secondes pour peaufiner votre enregistrement. Votre fichier vidéo découpé proprement, nous allons maintenant l'encoder.

 

2. Encodage du fichier en h264 (qualité HD)

J'ai à présent isolé le film et j'aimerai qu'il prenne un peu moins de place sur mon disque dur sans pour autant perdre en qualité. C'est possible grâce à l'encodage en H264. Pour l'outil, j'ai choisi Handbrake, il est simple d'utilisation et diablement efficace!

Installer HandBrake: 

$apt-get install handbrake

Lancer le programme handbrake  qui se trouve dans le menu Gnome: "Applications", "Son et Vidéo".

Choisissez votre fichier vidéo à partir du menu "File", "Source". Au bout de quelques instants, un résumé comprenant une image et les propriétés de la vidéo vont s'afficher dans l'onglet "Picture".

 

screenshot3-copie-1.png

Dans l'onglet "Video", deux possibilités:

--> méthode "Constant Quality": méthode d'encodage permettant d'obtenir des vidéos d'une qualité constante à partir du moment qu'elles ont les mêmes caractéristiques. Vous pouvez choisir un degré d'encodage entre 0 et 51 sachant que, plus le RF sera élevé, plus l'encodage sera destructeur; à l'inverse la qualité de la vidéo est d'autant préservée que le RF est petit, mais plus le poids du fichier sera important. Pour un fichier TS, l'objectif n'étant pas d'obtenir un fichier plus important que celui produit par la freebox, nous allons choisir un RF 22 qui correspond à 1 Go/heure de vidéo en qualité HD. Par exemple, à RF 25, une vidéo ts HD de 2 heures a la qualité et la taille d'un DIVX de 650 Mo, à RF 23 l'image est encore trop pixelisée, à RF 20 par contre, le fichier obtenu a une qualité d'image à peine supérieure au RF 22 mais la taille du fichier est plus importante que notre fichier ts de départ. Par contre, si vous avez enregistré votre film sur une chaîne non HD ou en qualité standard, utilisez plutôt la qualité RF 20 car, comme je vous le disais plus haut, le RF est à adapter en fonction des caractéristiques des vidéos à encoder.

 

screenshot1-copie-4.png

Pour les champs "Video Codec" et "Framerate", vérifiez qu'ils sont paramétrés comme sur la copie d'écran.

 

--> méthode "Target Size": avec cette méthode vous restez maître de la taille finale du fichier. Cependant ce choix nécessite de calculer approximativement la taille finale du fichier en fonction de sa durée. Pour un fichier ts HD, il faut compter à peu près 1 Go/heure pour obtenir un bon rapport qualité/poids du fichier, soit 1,5 Go (1500 Mo) pour un film d'une heure et demie. La durée d'encodage sera doublée avec cette méthode puisque nous allons utiliser le "2-pass Encoding".

 

screenshot3

 

Reste à choisir le format: la freebox ne sachant pas encore lire les fichiers au format MP4, nous choisirons le format MKV. 

 

screenshot7

 

Sans m'attarder sur ce point, sachez que vous pouvez retirer les bordures noires du film: menu "View", "Picture settings".

Pour terminer, vérifiez si la destination et le nom du fichier sont correctes. Vous pouvez à présent lancer l'encodage de votre vidéo.  L'encodage est une opération longue qui dure environ 12 heures par film sur mon Intel(R) Core(TM)2 Duo CPU E4400  @ 2.00GHz pour encoder un film ts qualité HD d'une durée de 2 heures (mode constant bitrate).

Avons nous perdu beaucoup de qualité à réencoder le fichier ts?

Pour le savoir, comparons ces 2 copies d'écran issues du film "La piscine",

fichier original de la Freebox, en TS, taille 3,8 Go:

 

Capture-ts-copie-1.png

après réencodage on obtient un fichier de 2 Go au format MKV:

   Capture-mkv.png

 

En regardant de très près les images ci-dessus, on peut remarquer une légère perte du piqué sur la capture d'image du fichier final au format MKV, au profit du poids du fichiers qui pèse 1,8 Go de moins et le retrait des bordures noires.

De toutes les solutions que j'ai testées sous Linux, celle-ci est la seule à fonctionner correctement avec les fichiers ts HD de la Freebox sans provoquer un décalage du son ni une perte importante de la qualité. Tous mes tests ont été effectués sous Ubuntu Lucid 10.04 et Maverick 10.10. 

Bon film!

LGDN

 

Nota1: Les paramètres conseillés pour encoder la vidéo avec Handbrake ne sont valables que pour des fichiers ts HD de la Freebox. Vous obtiendrez un résultat qualité/poids complétement différent avec un fichier vidéo HD provenant d'une autre source.

Commenter cet article
C
bonjour,<br /> tout d'abbord,un grand merci pour ce tuto!<br /> cependant,je suis confronté a un soucis!<br /> lorsque je charge mon fichier .ts,un message d'erreur apparait!(format non supporté)<br /> et lorsque je demarre le decoupage de ce dernier, un second message apparait lme disant:code error 1073741819<br /> que dois-je faire?<br /> cordialement!
Répondre
C
Pour ma part j'utilise avidemux disponible dans la logithèque Ubuntu 12.04
Répondre
J
Et TSMuxer n'est plus dispo (lien brisé). On peut le trouver ici:<br /> http://www.afterdawn.com/software/general/download_splash.cfm/tsmuxer_linux
Répondre
J
Salut,<br /> intéressant comme article. J'avais envie de faire la meme chose avec Handbrake seulement, car apparemment, on peut extraire une partie de la video avant encodage directement dans ghb. Le probleme:<br /> tous mes essais (j'utilise les secondes comme base de temps) se sont soldés par des échecs (1 seconde est tranformée en plusieurs minutes ? pas compris). En tous les cas, je garde ta page au chaud<br /> le temps de trouver plus pratique pour moi.<br /> Merci !
Répondre
J
<br /> Bonjour,<br /> <br /> Une question sur ce sujet que tu as pourtant bien décrit.<br /> <br /> Pour ma part je récupère des fichiers TV HD via un enreigistreur AKIRA.<br /> Il génère des fichiers H264 en conteneur .ts avec 3 piste audio eAC3 et 1 piste sous titre. Il s'agit d'un format PVR "standard" du chipset utilisé par l'AKIRA B36HR, à savoir des .ts de 2Go.<br /> <br /> Pour ma part j'assemble et découpe ces fichiers en une seule opération avec smart cutter TS. J'obtient donc un .ts HD de la vidéo qui m'intéresse.<br /> <br /> Comme toi je suis intéressé à diminuer un peu la taille énorme de la vidéo, en souhaitant par exemple réencoder en .mkv et surtout en éliminant les pistes audios inutiles et le sous titres.<br /> <br /> La dessus je butte et n'ai pas trouvé de tuto réellement opérationnel.<br /> <br /> Handbrake, que tu décrit me paraissait très intéressant mais peut-être par méconnaissance je n'arrive pas à l'utiliser. J'ai chargé la version 64b 0.9.11.<br /> Par contre visiblement le logiciel n'accepte en entrée que des .mp4 ou .mkv, donc je n'arrive pas à charger le .ts HD. Ai-je raté quelquechose?<br /> <br /> Enfin en supposant que le .ts soit chargé, comment faire pour ne sélectionner qu'une piste audio et supprimer les sous titre.<br /> <br /> Question complémentaire, l'audio HD est en nouveau format EAC3, Handbrake les prend-il en charge?<br /> <br /> Merci<br /> <br /> JLB<br /> <br /> Pour ma part je le<br /> <br /> <br />
Répondre
L
<br /> <br /> "Par contre visiblement le logiciel n'accepte en entrée que des .mp4 ou .mkv, donc je n'arrive pas à charger le .ts HD. Ai-je raté quelquechose?"<br /> <br /> <br />  <br /> <br /> <br /> Handbrake supporte de nombreux formats en entrée, dont les fichiers .ts: clique sur le bouton "Source" puis choisis le fichier .ts à réencoder.<br /> <br /> <br />  <br /> <br /> <br /> "Enfin en supposant que le .ts soit chargé, comment faire pour ne sélectionner qu'une piste audio et supprimer les sous titre."<br /> <br /> <br />  <br /> <br /> <br /> Facile: onlet audio, supprime les pistes audio inutiles puis faire de même pour les sous-titres dans l'onglet sous-titres (subtitles).<br /> <br /> <br />  <br /> <br /> <br /> "Question complémentaire, l'audio HD est en nouveau format EAC3, Handbrake les prend-il en charge?".<br /> <br /> <br />  <br /> <br /> <br /> Je compte sur toi pour nous le dire ;-)<br /> <br /> <br /> <br />
A
<br /> Bonjour<br /> <br /> Testé sous lucid 64 bit - un TS d'1 Go > Mkv d'un 1/2 go<br /> Parfait pour la simplicité de la manip<br /> Un seul regret que tsMuxer soit seulement un freeware<br /> <br /> PS - j'utilise Totem (qui réclame un codec (télétex ??) pour visualiser les temps de début et de fin (vlc n'affiche pas la durée)<br /> <br /> <br />
Répondre
L
<br /> <br /> Bonjour Alain,<br /> <br /> <br /> effectivement VLC n'affiche pas le timing des fichiers TS de la Freebox. De mon côté j'utilise Smplayer pour cette opération.<br /> <br /> <br /> <br />
K
<br /> Bien sûr il faut choisir un niveau de qualité en fonction de ce qu'on veut, un 22 (plus il est faible, plus la qualité sera grande) convient généralement et produit un fichier de taille<br /> raisonnable.<br /> <br /> Par exemple si tu règle un niveau de 15 et que tu obtient un fichier de 3.2 Go, alors que ton 2 passe a donné 1Go, peut être que son niveau de qualité final en 2 passes n'est que de 25.<br /> <br /> Quand tu as trouvé le niveau de qualité qui te convient tu ne le change plu, quellque soit ta source ou la durée c'est l'avantage. Et bien sûr ta collection sera consistante au niveau de la qualité<br /> d'image (et non plus au niveau taille de fichier).<br /> <br /> <br />
Répondre
L
<br /> <br /> Merci pour tes commentaires très instructifs qui m'ont décidé à modifier le tuto: j'ai ajouté un paragraphe sur la méthode d'encodage en<br /> "Constant Quality". Effectivement, en RF 22 le résultat est identique à mon calcul de base (1 Go par heure de vidéo HD) et l'on obtient ainsi un bon rapport qualité de l'image/taille du fichier.<br /> Autres points positifs: la vitesse d'encodage est divisé par 2, voir 3, puisque cette méthode n'utilise pas le "double pass encoding". Le paramétrage est simplifié, plus besoin de calculer la<br /> taille finale en fonction de la durée de la vidéo, le même réglage (RF) sera appliqué à tous les films ts HD issus de la Freebox. A noter, pour des films non HD, mieux vaut utiliser le RF 20 car<br /> à un RF supérieur, l'image est trop dégradée et pixelisée.<br /> <br /> <br /> <br />
K
<br /> bon tuto, je me permettrais une remarque quand à l'utilisation de Handbrake, plutôt que de choisir une taille finale, et ce en spécifiant une taille de façon arbitraire, il me semble plus judicieux<br /> de choisir le mode "Constant Quality" qui comme son nom l'indique gardera une niveau de qualité égale quel que soit la durée et la complexité de l'image du film.<br /> <br /> Avec ta solution, un film court de 1h et des images "simples" (un dessin animé par exemple, occupera autant de place qu'un film de 2h30 avec beaucoup d'action et de détails à l'image. Ce pendant le<br /> long film d0action aura une qualité bien moindre en regard de l'animé.<br /> <br /> Un Constant Qualité à 20 donne d'excellent résultats. De plus le mode Constant Quality ne demande qu'une seule passe, ce qui réduit largement le temps d'encodage.<br /> <br /> Et si le temps d'encodage n'est pas trop un problème, choisir le profil "high Profile" dans la colonne de droite est un grand plus pour la qualité. ( ou le rapport qualité/poids)<br /> <br /> <br />
Répondre
L
<br /> <br /> Bonjour,<br /> <br /> <br /> j'ai testé ta méthode "Constant Quality en une passe" avec le film "La piscine": <br /> <br /> <br /> durée du film --> 1h54<br /> <br /> <br /> taille du fichier ts --> 3,8 Go<br /> <br /> <br /> taille du fichier mkv obtenu -->  3,2<br /> <br /> <br /> durée de l'encodage --> 8 heures<br /> <br /> <br />  <br /> <br /> <br /> Effectivement, le temps d'encodage est plus court, il est divisé par 3 sur ma station et la qualité du film est très proche de l'originale. Par contre la taille du fichier obtenu est à peine<br /> moins importante que le fichier ts original. Après tout dépend de l'objectif que tu te fixes, le mien est d'obtenir un bon compromis taille du fichier/qualité. Pour cela je prévois environ 1<br /> Go/heure de film, soit environ 2 Go/film ou 500 Mo pour un court métrage de 30 mn. Pour les animes/mangas, 300 Mo pour 30 mn devrait être suffisant pour garder une qualité vidéo proche de<br /> l'originale.<br /> <br /> <br /> <br /> <br /> <br />