Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1188 connectés 

  FORUM HardWare.fr
  Video & Son
  Traitement Vidéo

  [tuto]Remultiplexer des mkv/avi en mp4 pour iDevices/ps3/360

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[tuto]Remultiplexer des mkv/avi en mp4 pour iDevices/ps3/360

n°1784265
krali
Posté le 05-05-2012 à 18:38:22  profilanswer
 

v0.1 (version ouverte à toutes remarques !)
 
Bonjour à tous !
Après avoir lurké pendant des années sur ce forum et récolté énormément de tips et bons conseils, je me permets un petit tutorial sur une opération que j'ai un peu fouillée ces derniers jours : remultiplexer des mkv/avi en mp4 SANS ré encoder.
Je voulais au départ charger des mkv en 1080p avec sous-titres "soft" sur ipad3, mais la même logique s'applique pour beaucoup de devices qui supportent mp4.
 
Préliminaire rapide pour comprendre les bases :
mkv, avi, mp4 sont des formats de fichiers "conteneurs" dans lesquels on peut trouver une ou plusieurs pistes de video, audio ou sous-titres. De nombreux devices supportent très bien les pistes vidéos h.264 mais seulement de certains types et seulement en conteneurs mp4.
 
L'approche bourrine, celle qui marche à tous les coups mais qui prends du temps, c'est le ré encodage avec incrustation des sous-titres dans la piste vidéo ("hard" subtitles). Je souhaitais m'épargner ça, mais si vous avez beaucoup de CPU et de temps, des outils comme handbrake le font très bien, et manuellement c'est avisynth+x264+mp4box.
L'approche qui consiste à utiliser un lecteur alternatif type GoodPlayer ou ADPlayerHD repose sur du décodage software, qui consomme plus de batterie et n'offre pas un framerate acceptable. Surtout en 1080p.
 
Ici, on souhaite extraire les pistes qui nous intéressent du conteneur original et les insérer dans un nouveau conteneur : on les re multiplexe. Ca doit prendre moins de 30 secondes avec un script, batch ou shell selon votre type d'OS.
 
Outils utilisés :
Uniquement des outils CLI, souvent ceux qui sont au coeur de softs "tout fait" avec interface graphique. Mais au moins là on comprend ce qui se passe, et on peut scripter pour automatiser.
MKVToolNix
MP4Box
Lame
NeroAac
 
 
Les étapes,  :
0) obtenir les informations nécessaires sur le fichier :

Code :
  1. mkvinfo "source.mkv"

ou bien

Code :
  1. mp4box -info source.avi


 
1) extraire toutes les pistes du mkv à partir des ID retournées par mkvinfo :

Code :
  1. mkvextract tracks source.mkv 0:"video.h264" 1:"audio.aac" 2:"st.ass"

etc.
Ou si c'est un avi :

Code :
  1. MP4Box -aviraw video source.avi

et

Code :
  1. MP4Box -aviraw audio source.avi

etc.
 
 
2) S'assurer, dans les informations, que la piste vidéo est bien supportée telle quelle par le device cible. Très grossièrement : le h.264 est spécifié selon plusieurs "profils", qui vont avoir des lecteurs cibles différents (embarqué, stream IPTV, disques...) puis ensuite pour chaque profil, on a plusieurs "niveaux" qui vont en gros avoir un bitrate cible.  
Votre lecteur multimédia (xbox, ps3, iDevice etc.) aura un décodeur h.264 avec un profil+niveau MAX supportés. Si le profil h.264 est au-dessus, pas de bol, il faudra ré encoder. Si c'est seulement le niveau, c'est selon.
Par exemple, pour iDevice, c'est High Profile@L4.1 . Si votre piste vidéo est en "High 10 Profile" (le fameux Hi10p des teams de fansubs), il faudra ré encoder. Si le niveau est au-dessus de 4.1, vous pouvez tenter d'éditer l'en-tête avec un éditeur hexa : changer la séquence \x67\x64\x00\x32 ou \x33 en \x67\x64\x00\x29 au début du fichier. Ca peut passer de temps en temps.
 
3)Pareil pour la piste son, mais là on peut ré encoder, c'est assez rapide. Pour iDevice, on veut du AAC 2channels.
Si on a du mp3 : on décode avec

Code :
  1. lame --decode audio.mp3 audio.wav


Si on a du AC3 ou DTS : on décode avec eac3to :

Code :
  1. eac3 audio.ac3 audio.wav


 
Puis on ré encode avec NeroAac :

Code :
  1. neroAacEnc -if audio.wav -of audio.aac


 
4) Les sous-titres : on part le plus souvent avec une piste de "soft" subtitles dans un format donné, qu'il faudra peut-être convertir pour être supportés par le device cible. SubRip est le plus souvent supporté :

Code :
  1. SAConv.exe "st.ass" SubRip

par exemple sous win.
(ce qui va sortir un st.srt, au prix de la perte de tous les styles du format SubStation Alpha)
 
5) On re multiplexe le tout :

Code :
  1. MP4Box -add "video.h264:fps=<FPS>" -add "audio.aac" -add "st.srt:hdlr=sbtl:tx3g:lang=eng:group=2:layer=-1" "video_finale.mp4"


<FPS> est récupérée dans les informations de la piste vidéo. Les autres pistes seront synchronisées sur la vidéo.
Notez que le multiplexage de la piste de sous-titres .srt pour iDevices est un peu plus subtile, si on ne la place pas correctement dans les layers, l'app Videos native va les ignorer (sinon un bouton apparaît à côté du bouton Play pour sélectionner les sous-titres).
 
Happy Multiplexing !


Message édité par krali le 06-05-2012 à 23:25:18
mood
Publicité
Posté le 05-05-2012 à 18:38:22  profilanswer
 

n°1816547
lezardeau
Posté le 06-11-2012 à 19:23:24  profilanswer
 

Un grand bravo et un grand merci pour ce topic !  
J'ai (enfin) réussi à faire ce que je voulais faire depuis des mois... bon j'avoue avoir un peu galéré car je n'y connais vraiment pas grand chose en ligne de commandes. Mais avec un peu de jugeotte ;)
 
Il n'existe pas de logiciel (gratuit) avec GUI qui permette de faire la même chose... ça me parait incroyable. Mais bon, maintenant je sais faire !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Video & Son
  Traitement Vidéo

  [tuto]Remultiplexer des mkv/avi en mp4 pour iDevices/ps3/360

 

Sujets relatifs
Incruster des sous titres dans un fichier MP4Demande d'avis pour achat mp3/mp4
Convertir MKV en MP4Recherche logiciel d'edition video mp4.
Peut on modifier la couleur et faire une rotation d'un fichier MP4 ?Pas de son après conversion fichier ts en mp4
recherche MP4 pas cher max 60€Lecteur MP4/5/6 efficace et sans tactile ?
pb de volume mp4 sony. Quels écouteurs choisir?mp4 mpman mp190 fm 16 GB non détecter
Plus de sujets relatifs à : [tuto]Remultiplexer des mkv/avi en mp4 pour iDevices/ps3/360


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR