Conversion d'enregistrement TNT-HD en x264: mon retour, vos conseils ?

Conversion d'enregistrement TNT-HD en x264: mon retour, vos conseils ? - Traitement Vidéo - Video & Son

Marsh Posté le 12-11-2014 à 14:09:35    

Salut,
 
 
A propos
Je réalise régulièrement des enregistrements vidéos des chaines TNT-HD.
Ces enregistrements sont effectués à l'aide de "Windows Media Center (Windows 8.1)" en réception TNT-HD (signal antenne TV) via un tuner TNT "A835-ECO Aver TV Volar Green"
 
Les fichiers obtenus (container .wtv ou .ts) sont au format suivants (informations MediaInfo)
------------------------------------------------------------------
- Format : AVC – Advanced Video Codec (H.264/AVC)
- Profil du format : High@L4.0  
- Paramètres du format, CABAC : Oui  
- Paramètres du format, RefFrames : 4 images  
- Largeur : 1 920 pixels  - Hauteur : 1 080 pixels  - Format à l'écran : 16/9  
- Images par seconde : 25,000 Im/s  
- Espace de couleurs : YUV  
- Sous-échantillonnage de la chrominance : 4:2:0  
- Profondeur des couleurs : 8 bits  
- Type de balayage : MBAFF  
- Ordre de balayage : Ligne du haut d'abord  
- Coordonnées de chromaticité : BT.709  
- Caractéristiques du transfert : BT.709  
- Coefficients de la matrice : BT.709

------------------------------------------------------------------
 
 
Finalité
Je souhaite pouvoir conserver ces enregistrements dans un format standard tout en conservant la qualité de diffusion.
Pour cela, j'ai retenu le container MKV associé au format H264 en utilisant le codec x264.
Je souhaite donc obtenir un fichier MKV associé à ces formats.
 
 
Problématique n°1 - La découpe propre de l'enregistrement
Le principal problème auquel j'ai été confronté afin de réaliser un conversion propre de mes enregistrements et celle du découpage précis de l'enregistrement réalisé. Ainsi, bien qu'il existe de nombreux logiciels prétendant permettre la découpe de flux WTV (ou équivalent dans un container .TS) il y en a très peu qui permettent de couper à la frame prêt : de nombreux logiciels ne permettent que la découpe à la seconde qui ne permet pas de couper le flux proprement, puisqu'on garde alors des images parasites au début où à la fin de la vidéo.
 
Je me suis alors tourné vers des logiciels permettant la découpe à la frame près. Cependant, dans l'interface des logiciels testés, bien que l'interface permette effectivement cette découpe précise, la sortie de la vidéo découpée pose problème : des artefacts visuels variés apparaissent aux points de découpe de la vidéo, notamment au point d'entrée de la découpe.
 
Après renseignements (laborieux je dois dire), il s'avère que ce problème est lié au format natif du mode de diffusion de la TNT-HD.
En effet, le flux TNT envoyé est donc au format H264/AVC. Or, dans ce format, la notion de GOP (cf. wikipedia) est problématique.
 
Si je prends la définition, on a :

Citation :


Un GOP est constitué d'une suite d'images regroupées dans un flux vidéo encodé qui est répété périodiquement jusqu'à la fin de l'encodage. Les images visibles sont générées à partir des images codées contenues dans un GOP.
...
Un GOP contient une seule image I qui correspond à la première image à encoder. Elle est suivie d'une succession d'images P et B dont le motif se répète jusqu'à la fin du GOP. Les images P se situent à intervalle régulier et les images B complètent ces intervalles.  


 
Donc, pour simplifier, disons les images d'un GOP sont interdépendantes, dans la mesure où une partie d'entre elles sont encodées en référence à d'autres images de ce GOP (dans le cas le plus simple).
Or, le problème avec un enregistrement TNT-HD, c'est qu'un GOP unique :
1 - Peut-être d'une durée assez longue (ce qui semble être caractéristique de la TNT française),
2 - ... et surtout, de fait, peut intégrer une séquence vidéo qui contient à la fois la fin de la séquence de pub et le début de mon programme (celui que je veux couper précisément).
 
Or, de très nombreux logiciels permettant la découpe du flux enregistré, bien que permettant un découpe à la frame près, sont en réalité incapable de couper proprement la vidéo. Certes, ils coupent au bon endroit (dans le meilleur des cas), mais, du fait que l'on coupe dans un GOP, ils vont générer des artefacts visuels à l'endroit de la coupure... incapables de gérer correctement le contenu des toutes premières frames.
 
Au final, après de très nombreux tests, le seul logiciel trouvé qui réalise proprement l'opération est VideoRedo TVSuite H.264 (version 5 en beta).
 
De fait, pour chaque enregistrement, je le passe dans VideoRedo, j'effectue la découpe à la frame près, et j'exporte le flux découpé.
J'insiste sur la notion d'exportation car, dans cette phase, je n'encode/modifie absolument pas le flux source : j'en fais juste une découpe exportée au même format (container .WTV chez moi ... et codec d'origine non réencodé H264/AVC).
 
La principale force de VideoRedo, c'est :
1 - Qu'il soit capable de couper proprement sans artefact visuel. Pour cela, il réencode uniquement les frames nécessaires à la bonne réalisation de la découpe. En gros, je pense qu'il part du début du GOP, interprète celui-ci (le décode) et en déduit un réencodage des frames impactées par la découpe.
2 - Que pour le reste de la vidéo (soit 99,999% du contenu), il ne fasse que copier le flux dans le fichier de sortie : on ne touche pas à la qualité de la vidéo, ni aux informations contenus dans le container WTV (pistes sons multiples, ...). De plus, pour le coup, l'opération est très rapide, car il n'y a pas de réencodage à part pour les quelques frames impactées par le découpage.
 
...
 
Au final, problématique n°1 réglée : j'obtiens un fichier WTV découpé proprement, tout en ayant conservé la qualité originale de mon enregistrement, ainsi que le contenu additionnel du container WTV (pistes sons multiples, sous-titres DVB-SUB, ...)
 
 
Etape suivante - Encodage du flux - Choix d'un logiciel
Après m'être renseigné, j'en suis venu à retenir le container MKV (bien connu) associé au format H.264 avec le codec x264.
L'intérêt du codec x264 c'est qu'il permet d'obtenir un rapport qualité/compression de bon rapport, tout en restant un codec dont la compatibilité en lecture est largement répandue.
 
Le principal intérêt d'avoir effectué mon découpage de flux de manière indépendante de l'encodage (tout en conservant la qualité d'origine) est que je peux ensuite utiliser de nombreux logiciels gratuits permettant l'encodage MKV en x264.
Parmi ces logiciels, j'avais retenu ceux-ci :
- Handbrake
- Vidcoder (fork d'Handbrake)
- XMedia Recode
 
La problématique du découpage n'a plus cours, puisque ma source est déjà proprement découpée. [:volta]
 
PS :
Les logiciels cités permettent également de fournir des points de découpe temporelle du flux encodé.
Cependant, pour avoir testé ces possibilités, celles-ci ne m'ont pas convaincues :
- il n'y a pas de prévisualisation en tant réel de l'endroit où l'on souhaite couper,
- quand bien même on repère les points de découpe par un time-code précis (hh:mm:sss.msmsms) dans un autre logiciel, la découpe effectué par ces logiciels est imprécise : des décalages important peuvent se produire. Et, pour tester, c'est la galère : il faut régler le time-code, puis encoder (une partie) pour tester, ... un travail fastidieux même pas couronné de succès. Donc...  :pt1cable:  
 
...
 
Au final, après lectures et tests, j'ai retenu "XMedia Recode" car :
- il permet, au même titre qu'Handbrake, de régler précisément les paramètres d'encodage x264, [Bon courage ! ;) ]
- ... et surtout il dispose d'une librairie x264 plus à jour que celle d'Handbrake (qui se met à jour moins souvent semble t-il) :  
---> Handbrake  : x264 core 130r2273b3065e6
---> XMedia Recode : x264 core 142r2479
 
Que l'un où l'autre soit choisi, il faut de toute façon se renseigner précisément sur les paramètres x264 afin de les régler (tous) dans le profil d'encodage.
 
 
Problématique suivante : désentrelacer ou non ?
Dans la mesure où les enregistrements sont réalisés dans une résolution full-HD (1920x1080) je souhaite conserver cette résolution, d'autant plus que le codec x264 permet d'obtenir des résultats poids/compression/qualité tout à fait corrects, même dans cette résolution.
 
Cependant, autres les autres paramètres du x264, il me reste UN grand choix à faire concernant la phase d'encodage du flux : celui concernant la gestion de l'entrelacement.
En effet, la source TNT enregistrée étant diffusée dans un format entrelacé ("MBAFF - Ligne du haut d'abord (TFF)" ), je dois choisir si je désentrelace ou non.
 
Or, dans de nombreuses documentations, il est précisé (à juste titre) que l'opération de désentrelacement est une opération :
 
1 - Définitive :  
Si j'encode en entrelacé, j'aurai certes un fichier final en affichage "progressif", mais je ne pourrai pas revenir en arrière, sauf à réencoder.
 
2 - Affectant la qualité finale du rendu :  
Même s'il existe de nombreux algorithmes de désentrelacement, chacun d'entre eux dégrade la qualité initiale du flux.  
De plus, en ayant effectué des tests en encodant avec un algo. Yadif (Bob, Temporal & Spatial Check) dans XMedia Recode, j'obtiens une sortie où la bande son peut être très légèrement décalée, chose que je n'obtiens pas en encodant sans désentrelacement.
 
 
Donc, sachant qu'on ne présume pas de ce qui servira à la lecture du flux encodé (PC, TV, autres, ...), ma question est la suivante :
 
- Est-il préférable d'encoder :
--> sans désentrelacement et d'obtenir un flux MKV-x264-entrelacé (mais non altéré sur le principe) que le logiciel de lecture aura à charge de désentrelacer pendant la lecture ?
 
ou
 
--> de faire le choix de désentrelacer afin d'obtenir un flux MKV-x264-progressif qui ne nécessitera aucun désentrelacement à la lecture, mais pour lequel l'opération définitive de désentrelacement aura nécessairement produit une baisse de la qualité visuelle (qu'elle soit théorique et/ou perceptible) ?
 
Un exemple de discussion :
http://www.tvnt.net/forum/desentrelacement-t32726.html
 
 
 :jap:


Message édité par _Nada le 12-11-2014 à 15:44:09

---------------
~ Facebook : un algorithme calcule la manière dont tu dois établir des relations sociales numériques, à la vitesse permise par la puissance des ordinateurs. ~ Bienvenue au 21ème siècle !
Reply

Marsh Posté le 12-11-2014 à 14:09:35   

Reply

Marsh Posté le 12-11-2014 à 14:49:47    

Rien de bien nouveau, même à l'époque où je rippais des DVD pour les passer en DivX, la coupure pour faire tenir le tout sur 2 CD était déjà problèmatique car il fallait couper sur une frame clé, les images étant calculées au sein d'une séquence.
Par contre content d'apprendre que VideoRedo est capable de la gérer correctement sans recompression :jap:


---------------
FeedBack HFR
Reply

Marsh Posté le 12-11-2014 à 15:29:15    

Oui, problématique peut-être pas nouvelle.
 
Cependant, ayant pas mal galéré pour trouver une solution viable (qui me coûte le prix de la licence VideoRedo), je livre ici le résultat résumé de mes recherches, dans un cas adapté à la conversion d'enregistrements TNT-HD.
...
car, dans de nombreux forums traitant que l'encodage H264, la source implicite du sujet des discussions est trèèèès souvent l'encodage de sources Blu-ray, opération qui n'est pas impactée par la problématique du découpage propre lié à une source (enregistrement TV) non découpée et loin d'être la plus propre/standard dans son usage du codec de diffusion.
 
D'ailleurs, si j'en crois certains messages sur le forum de VideoRedo, la problématique particulière du format de diffusion de la TNT-HD française intéresse grandement les développeurs du logiciel, dans la mesure où ils peuvent être confrontés à des problèmes (artefacts visuels sur les coupures) auxquels les utilisateurs américains enregistrant aussi des sources HD ne sont pas nécessairement confrontés.
 
Eux, ce qui les intéresse c'est la découpe automatique des pubs.  :o  
 
 :jap:


Message édité par _Nada le 12-11-2014 à 15:42:51

---------------
~ Facebook : un algorithme calcule la manière dont tu dois établir des relations sociales numériques, à la vitesse permise par la puissance des ordinateurs. ~ Bienvenue au 21ème siècle !
Reply

Marsh Posté le 14-11-2014 à 11:37:29    

Je fais aussi beaucoup d'enregistrement tv et j'ai pas mal galéré. En particulier pour les flux TNT-HD en effet.
 
Au final, pour la découpe, j'utilise avidemux on peut choisir le point de découpe final sur n'importe quelle image, par contre pour le premier point il faut se trouver sur une image clé, je m'en contente bien car les débuts de films, des émissions, les sorties de pubs se trouvent toujours sur une image clé, c'est extrêmement rare que ce ne soit pas le cas, et quand ça arrive, je sacrifie une ou 2 images au début, c'est pas bien grave.
 
Ensuite j'utilise Mediacoder pour l'encodage depuis 6 ans, il permet vraiment de tout paramétrer comme on veut, et il utilise vraiment tout le potentiel de son pc, mais si on débute dessus, il faut faire des essais avec un échantillon de la video pour être sur d'avoir tout bien paramétré, parce que suivant le fichier source (codec, contenair), il peut être nécessaire de faire des ajustements les premières fois.
 
J'utilise aussi staxrip parfois, là c'est facile, on peut découper comme on veut, on choisit les parties de l'enregistrement qu'on veut garder, on paramètre comme avec mediacoder, et on a notre video de sortie encodée. Mais parfois ça foire sans raison.  
 
Pour le désentrelacement, j'utilise linear blend sous mediacoder si je conserve le framerate d'origine. Par contre avec staxrip et yadif en mode 1, on peut faire un désentrelacement qui conserve la fluidité d'origine en doublant le framerate, c'est nickel pour ce qui n'est pas film ou séries TV (qui sont d'origine déjà en 24fps progressif donc pas très utile de se prendre la tête avec).

Reply

Marsh Posté le 14-11-2014 à 15:34:22    

Merci pour tes infos.
 
StaxRip je ne connaissais pas.
Je l'aurais bien testé mail il semble être un peu abandonné, dans la mesure où la dernière maj semble dater du 30-06-2013 :
http://sourceforge.net/projects/staxmedia/
 
 
Bon, sinon, je ne sais toujours pas si je dois désentralcer ou non mes documentaires issus de l'enregistrement TNT-HD.  


---------------
~ Facebook : un algorithme calcule la manière dont tu dois établir des relations sociales numériques, à la vitesse permise par la puissance des ordinateurs. ~ Bienvenue au 21ème siècle !
Reply

Marsh Posté le 14-11-2014 à 22:21:35    

Pourquoi vouloir désentrelacer ?
Et pourquoi vouloir ré-encoder après la découpe ?
L'intérêt du smart rendering est justement d'éviter un ré-encodage.
TMPGEnc MPEG Smart Renderer 4 fait paraît-il ça très bien, même avec de l'entrelacé.

Reply

Marsh Posté le 18-11-2014 à 07:46:34    

Pourquoi désentrelacer ?
C'est justement la question que je posais : intérêt ou pas ?
 
Pourquoi vouloir réencoder ?
--> Parce que c'est pour conserver :  
 
Les vidéos réencodées en MKV/H264/x.264 sont :
- plus standards qu'un container WTV ou .TS, ... lisibles par n'importe quel playeur censé être (vraiment compatible) avec le format (container + codec).
- plus légères à qualité visuelle identique (perso je réencode en VBR-vidéo-->4000 avec piste son stéréo en LC-ACC-224). Ce sont des documentaires, donc je ne monte pas à des débits plus élevés (ce n'est pas une source Blu-ray, et la source son est en stéréo).
- plus facile à lire sur un playeur : certes le WTV (ou .TS) est lisible par VLC, MPC-HC, ... mais le déplacement dans la vidéo est fastidieux (parfois un peu long quand on déplace le point de lecture) et générateur d'artefacts visuels lorsqu'on se déplace. Une fois converti en MKV/H264 --> lecture fluide, déplacement immédiat sans aucun artefact visuel. Et puis lire du WTV (ou .TS) sur les TV dites "multimédias" doit réserver pas mal de surprises/inaptitudes. Je rappelle que mon but est d'obtenir des vidéos qualitativement correctes tout en étant compatibles avec le maximum de matériels/logiciels lecteurs.
 
 
J'ai testé TMPGenc Smart Renderer (même VideoRedo avec sa version Smart Renderer), mais cela ne me convient pas dans la mesure où on ne peut pas choisir précisément les paramètres d'encodage (d'ailleurs VideoRedo ne permet pas l'encodage avec l'algo x264).
Après c'est un choix : je peut concevoir que ces produits conviennent à certains, en fonction de ce que l'on souhaite faire.
 
PS :
"TMPGEnc MPEG Smart Renderer" fait du réencodage : le seul truc, c'est qu'il simplifie les réglages proposés à l'utilisateur en présélectionnant les réglages du x264 en fonction de la source.
"TMPGenc Video Mastering Works 5" propose quant à lui de pouvoir intervenir plus précisément sur les réglages x264.
... les 2 proposant une découpe précise (frame-accurate) de la source vidéo WTV.
--> mais les deux font donc bien du réencodage (en proposant éventuellement de choisir entre encodage CPU ou encodage GPU).
 
J'ai également testé le réencodage basé sur le GPU (AMD ou Intel, j'ai les 2 sur 2 PC différents) : certes cela va beaucoup plus vite qu'en encodage x264-CPU, mais les réglages sont vraiment très limités et la qualité d'encodage ne vaut clairement pas le x264-CPU.
Comme le disent de nombreux tests, ce genre d'encodage (pour l'instant en tous cas) est surtout pratique pour qui veut encoder une vidéo H264 rapidement (quitte à sacrifier la qualité d'encodage).
 
Cela est surement pratique en prod (pour sortir un résultat propre rapidement (genre maquette)) mais non adapté, selon mon choix, pour encoder une vidéo que l'on conservera ad vitam... et pour laquelle on souhaite obtenir le meilleur rapport qualité/poids.
 
Voir ici par exemple : http://www.hardware.fr/articles/828-27/conclusion.html
 
Au final, j'ai réencodé mes vidéos en MKV/x264 en conservant l'entrelacement d'origine : j'obtiens donc (bien) des MKV-H264 en MBAFF-TFF, lisibles sans problème par tout lecteur capable de gérer le désentrelacement à la lecture (VLC, MPC-HC, ... XBMC, ... et une TV multimédia).
 
Exemple de paramètres d'encodage :

Spoiler :


x264 core 142 r2479
 
cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=tff / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=0 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=2pass / mbtree=1 / bitrate=4000 / ratetol=1.0 / qcomp=0.60 / qpmin=5 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00

 
+ piste son stéréo (comme la source) AAC-LC VBR 224 Kbps
 
CF. : http://mewiki.project357.com/wiki/X264_Settings


 
Après, c'est clair qu'il ne faut pas être pressé pour l'encodage (mais je ne le fais qu'une fois pour chaque enregistrement) : mais bon --> 2-pass + ref 5 frames + Macroblocks (Adaptative DCT, I8x8, I4x4, P8x8, B8x8).
C'est un choix.
 
 :jap:


Message édité par _Nada le 18-11-2014 à 08:31:28

---------------
~ Facebook : un algorithme calcule la manière dont tu dois établir des relations sociales numériques, à la vitesse permise par la puissance des ordinateurs. ~ Bienvenue au 21ème siècle !
Reply

Marsh Posté le 18-11-2014 à 12:58:59    

Il y a une différence entre ré-encoder et changer de conteneur, si c'est le wtv ou ts qui te pose problème. Tu peux le mettre dans du mkv avec MKVmerge. Mais pour l'entrelacé il vaut mieux extraire le flux élémentaire avec Tsmuxer avant de l'ouvrir dans MKVmerge, sinon il peut y avoir une mauvaise détection de framerate (et pour le fps on met 50i).
 
TMPGEnc MPEG Smart Renderer ne ré-encode pas (ce n'est pas pour rien qu'il s'appelle comme ça), sauf les parties endommagées ou modifiées. Et je pense qu'il utilise x264.
Je l'ai testé, aucun problème de qualité de compression.
 
Maintenant c'est à toi de voir si le gain de place est plus intéressant que la perte de qualité et de temps à ré-encoder.
 
À part ça c'est bien d'avoir gardé l'entrelacement, tu gardes la fluidité (si c'est bien une source entrelacée et pas un film).
 

Reply

Marsh Posté le 18-11-2014 à 18:06:03    

Autant le débit pour la vidéo est "léger", autant celui du son est surdimensionné :D
Avec l'encodeur qui va bien, 128k pour 2 canaux c'est déjà très suffisant pour du AAC


Message édité par WhyMe le 18-11-2014 à 18:06:34

---------------
FeedBack HFR
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed