Découper une vidéo MPEG-TS sans réencodage

 

Depuis des années, j'enregistre mes émissions sur le satellite ou la TNT au format SD, c'est à dire en MP2. Format très souple, il permettait le découpage sans réencodage (donc sans perte de qualité ni de temps, ni désynchro). J'utilisais MPEG2Cut, un tout petit utilitaire (200 Ko) sans installation nécessaire, d'une simplicité et d'une efficacité épatantes. S'il y avait plusieurs morceaux, je les recollais ensuite sous DOS.

Et paf, voilà que le 5 avril 2016 débarque la TNT HD. Obligée de racheter un tuner TNT pour le PC. Et de dire adieu au MPEG2. Désormais, les vidéos s'enregistrent au format MPEG-TS.

A noter que Free VideoEditor, que j'avais évoqué dans l'article concernant la découpe de MP4 sans réencodage, refuse d'ouvrir mes fichiers MPEG-TS.

Pour information, 30 min de vidéo MPEG-TS pèse 1 Go (à peu près comme une vidéo SD).

J'ai donc essayé quelques logiciels gratuits. Et, comme dans le cas du MP4… ce n'est pas brillant.

TSSniper

Téléchargement

TSSniper est un logiciel sans installation. Il est un poil lent à se lancer la 1e fois, mais c'est acceptable. Et, bonne nouvelle, il propose un aperçu de la vidéo !

Le fonctionnement est particulièrement peu intuitif. Et aucune documentation n'est disponible. Au lieu de juste avoir à faire glisser la vidéo à découper, il faut d'abord créer un nouveau projet pour ensuite pouvoir y importer le fichier TS avec File > Add new file to project. L'importation d'un fichier prend une petite minute. Et là, une boîte de dialogue nous informe que le splitter/demuxer actuel MainConcept MPEG Demultiplexer n'a pas la capacité de sélectionner les streams audio, et que je ne pourrai pas changer le flux audio actif.

tssniper-chargement-video-dans-projet

La scroll le long de la timeline n'est pas précis du tout, et on ne peut pas affiner avec les touches de direction. Dans Extra > Settings > Preview navigation, on peut au moins augmenter la précision des boutons de scroll en diminuant le nombre de millisecondes.

tssniper-parametres-onglet-preview-navigation

Mais le pire, c'est la sélection de la plage à extraire. On ne comprend pas ce qui va être exporté ! Je sélectionne le début et la fin, je lance l'export (Export > Export transport stream) : toute la vidéo est exportée !

Je retente en cliquant sur le bouton Add new area to current selection, ce qui colore ma zone sélectionnée en rouge. Là encore, j'exporte une vidéo énorme ! Je finis par comprendre ce que n'est pas la zone en rouge qui est exportée, mais tout le reste ! En fait, TSSniper est plutôt un logiciel destiné à retirer les pauses pub d'un programme, que d'extraire des morceaux de vidéo indépendants.

tssniper-selection-zone-a-retirer

J'ai tenté de modifier ce comportement dans Extra > Settings > General, mais en vain.

tssniper-parametres-onglet-general

Heureusement, on peut définir plusieurs zones à exclure ! Du coup, on exclut la zone avant et celle après, et on a bien notre vidéo (la zone verte).

tssniper-selection-zone-a-exporter

Mais le plus ennuyeux, c'est que sur la vidéo résultante, le son est complètement brouillé. Dans Extra > Settings > DirectShow, dans le 1er déroulant Preferred splitter/demuxer, je change Automatic Selection pour Haali Media splitter AR, mais ce n'est pas mieux.

tssniper-parametres-onglet-directshow

Je tente d'autres codecs, mais il y en a une centaine ! Et tous les autres renvoient un message d'erreur « Directshow problem – Failure while trying connect file source output pin to preferred splitter/demuxer filter input pin. ».

Je laisse donc tomber.

 

TSSplitter

Télécharger

Ce tout petit logiciel sans installation sert en réalité à découper un volumineux fichier MPEG-TS en parties égales afin que ça tienne sur un CD, un DVD, etc

L'interface est rudimentaire mais intuitive. On choisit son fichier dans le 1er champ Source File. Le répertoire de destination proposé par défaut est le même que le source.

Puis on choisit la taille des morceaux : soit par type de disque (CD ou DVD), soit par taille en Mo ou en Go, soit en nombre de morceaux.

Exemple par type de disque :

tssplitter-decoupe-videos-type-disque

Ex en choisissant 8 morceaux :

tssplitter-decoupe-videos-nb-morceaux

Et on clique sur le bouton Go correspondant à la solution choisie pour valider.

La liste Destination files se remplit alors avec le nom des futurs fichiers.

On lance le processus en cliquant sur Start splitting.

tssplitter-export-videos

En quelques dizaines de secondes (en partant d'un fichier de 1 Go), on obtient nos morceaux de vidéo. Avec le son.

Ce n'est absolument pas le logiciel dont j'ai besoin pour extraire mes séquences vidéo, mais le jour où j'aurai besoin de débiter de la vidéo, je l'utiliserai.

H264TS-Cutter

Téléchargement

Le logiciel se lance sans installation.

Pour charger un fichier, pas de possibilité de glisser-déposer dans la fenêtre (hélas). Le raccourci Ctrl+O est également inopérant. Il faut faire File > Load file/TS. Je dois également renommer mon fichier .mpg en .ts, sinon il ne le trouve pas.

hs24tscutter

Pour naviguer dans la vidéo, on fait glisser l'ascenseur du slider horizontal situé sous l'aperçu. Les boutons en haut à droite permettent le scroll plus fin, sauf que l'image ne se rafraîchit pas toujours, donc on ne sait plus où on se trouve.

Et là, grand moment de perplexité… comment définit-on les points de coupe ? Après pas mal de recherches (aucun tuto n'est disponible sur le net, comme d'habitude) enfin, je trouve : ce sont les boutons Start et End tout à droite ! Par contre, on ne voit pas la plage sélectionnée sur la timeline. Juste des chiffres à droite des boutons Go to start et Go to end (le nombre de frames sans doute ?)

hs24tscutter-boutons-scroll-et-selection

Ensuite, on clique sur le bouton Add situé sous les boutons Start et End.

La portion sélectionnée se trouve listée sous la forme d'une nouvelle ligne dans le cadre blanc situé sous les aperçus.

hs24tscutter-video-selectionnee

Si on clique-droit dans ce cadre, un menu déroulant permet de gérer les portions sélectionnées (ajout, suppression)

hs24tscutter-menu-split

CutIn me donne accès à un déroulant permettant de choisir entre I-Frame, P-Frame, B-Frame, All-Frame. CutOut également.

Enfin, je clique sur le bouton Cut (à droite de Play et Preview). La vidéo s'exporte en quelques secondes.

Le résultat correspond – à peu près – à ce que j'ai sélectionné, et le son est conservé.

hs24tscutter-succes

Si je veux réajuster, je choisi Use values, ce qui remplit à nouveau les champs situés à droite de Go to start et Go to end. Et à tâtonner en changeant les valeurs.

Pour ceux qui veulent supprimer des pauses pub d'une émission, il suffit de sélectionner toutes les parties qui les intéresse, et elles seront exportées toutes ensemble. En revanche, le son se désynchronise au niveau des parties suivantes. Ce n'est pas vraiment admissible !

J'arrive à régler le problème de désynchronisation en allant dans Settings et en décochant la case « Recalculate PTS » sous l'onglet TS-settings.

UPDATE : suite à la réinstallation de mon PC, au chargement de la vidéo, j'étais accueillie par une boîte d'erreur au contenu peu explicite « Une exception non gérée s'est produite dans votre application. Si vous cliquez sur Continuer, l'application va ignorer cette erreur et essayer de continuer. (…) La valeur ‘0' n'est pas valide pour ‘Value'. ‘Value' doit être compris entre ‘minimum' et ‘maximum ». Nom du paramètre ‘Value' ».
Il n'était alors plus possible de continuer car, même si la première image de la vidéo était affichée dans l'aperçu, le logiciel se comportait comme si la vidéo était soit vide, soit ou trop longue… L'installation de Haali Media Splitter (encore appelé MatroskaSplitter.exe) a résolu le problème (non, ce n'était pas un souci de .NET Framework comme je l'avais cru au départ)

En ligne de commande avec FFMpeg

J'ai décrit cette méthode dans l'article sur la découpe de fichier MP4. Grâce à TSSniper je peux récupérer le temps de départ (ici 00:14:42.311) et la durée (00:02:55.881)…

ffmpeg -ss 00:14:42.311 -i D17_04_13_2016_17_45_29.ts -t 00:02:55.881 -c copy out.ts

Hélas, la découpe échoue. Un spécialiste en vidéo saura peut-être pourquoi…

decoupe-video-ts-ffmpeg

Conclusion

On est bien loin de la facilité d'emploi de MPG2cut ! Tous ces logiciels manquent réellement de simplicité et ne sont pas très performants. Le moins mauvais est H264TS-Cutter.

Par ailleurs, la précision n'est pas au rendez-vous. Comme on ne réencode pas, on est obligé de couper entre deux GOP (group of images). Sur un flux TNT-HD, les GOP peuvent faire de 24 à 32 images, donc un peu plus d'une seconde.

Tous ces logiciels sont assez anciens, et ne sont plus maintenus par leur auteur. Espérons que le passage à la TVHD suscitera des vocations parmi les développeurs…

Il existe également des solutions payantes, telles TSPE de BitStreamTools, que je n'ai pas pu tester.

Sources

Couper un fichier TNT sans réencoder

Karine SANCHE

Partager cet article