[Linux] Créer un fichier film HQ multilingue avec sous-titres, adapté aux smartphones

Dans cet article nous allons voir comment créer un fichier multimédia contenant ce que j’appelle un “mini DVD”. En effet, autant il est facile de récupérer des films sur Internet, autant ces films sont rarement adaptés à la lecture sur smartphone. Or, avec l’augmentation de la taille des écrans de smartphones, de plus en plus de gens regardent des films dessus.

Les films récupérés sur Internet sont rarement adaptés aux smartphones parce que soit ils sont en SD, auquel cas la qualité d’image n’est pas top ou ils sont dans un format vidéo différent du x264 (auquel cas leur lecture n’utilisera pas l’accélération matérielle du smartphone, donc l’autonomie de la pile va s’écrouler très vite), soit ils sont en HD (1080 ou 720) auquel cas la qualité est top mais la résolution de l’image fera que l’autonomie de la pile du smartphone va s’écrouler aussi très vite.

Dans les deux cas, ce n’est pas satisfaisant puisque l’autonomie de l’appareil en pâtit.

C’est ainsi que m’est venue l’idée de créer des mini DVD, qui n’ont que des avantages. Définissons ce qu’est un mini DVD :

  • Un fichier mkv (Matroska video) : ce conteneur permet de mettre dans un seul fichier la vidéo, plusieurs pistes sons, plusieurs pistes de sous-titres, des chapitres, et même l’affiche du film
  • La vidéo : encodée avec le codec x264 (la version libre du codec AVC H264) pour pouvoir bénéficier lors de la lecture de l’accélération matérielle du smartphone (et donc préserver l’autonomie de la pile); et avec une résolution de 720×304 (encodée en 500 Kbps) ou 720×400 (encodée en 600 Kbps) max. Cette résolution, qui est celle du DVD soit dit en passant, est idéale car elle n’écroule pas les capacités de calcul du smartphone (dans un soucis d’autonomie de pile toujours), et elle permet de conserver une bonne définition lorsque le fichier est joué sur un lecteur multimédia de salon. Dernier détail : 720xYYY certes, mais créé à partir d’une source HD 1080p (pour bénéficier d’une source initiale de définition maximale)
  • Le son : chaque piste est encodée en MP3 stéréo 192 kbps, à partir d’une source HD AC3 (Dolby Digital) ou DTS. Certes on perd le home cinéma, mais on s’en fiche puisque le but est d’écouter avec un simple casque stéréo, mais qu’est-ce qu’on gagne comme place. A 192 kbps on reste sur de la top qualité de son, tout en étant sur du format petit et nomade.
  • Les sous-titres : idéalement au format srt (texte) ou ssa. Les autres formats, plus gourmands, passeront mais le fichier résultant sera plus grand
  • L’affiche du film : récupérée en HD sur Google Images et intégrée dans le fichier. L’aperçu du fichier dans MX Player sous Android utilisera automatiquement l’affiche du film, ce qui est du plus bel effet, ainsi que Nautilus sous Linux. Sous Windows, l’aperçu avec l’affiche ne fonctionne pas mais on s’en fout.

On obtient ainsi un fichier mkv qui contient tout, pour généralement moins d’1 Go par film, soit 1000 mini DVD sur un disque d’1 To. Ce fichier peut être vu selon l’humeur du moment : en VF sans sous-titres, en VO sans sous-titres, en VO avec les sous-titres français, en VO avec les sous-titres anglais, etc. On a la même latitude d’utilisation et la même résolution qu’avec un DVD classique, d’où son nom de mini DVD.

Trêve de bla bla, voyons comment on fait.

Pour réaliser cette prouesse, nous allons avoir besoin de (on dirait une recette de cuisine):

  • of course, un fichier mkv 1080p (de plusieurs gigas généralement) contenant le film souhaité, ainsi que les langues et les sous-titres. Ne comptez pas sur moi pour vous révéler où l’on en trouve (il y en a plein le net, il suffit de se baisser pour en ramasser).
  • le logiciel Avidemux (voir la procédure d’installation ici)
  • le logiciel mkvtoolnix (voir la procédure d’installation ici)

Lançons avidemux et chargeons y le fichier mkv 1080p.

J’avoue, j’ai flouté le nom du film ainsi que l’image pour ne pas avoir de problème avec la patrouille.

Sur la gauche on a les 3 rubriques qui nous intéressent : sortie vidéo, sortie audio et format de sortie.

Format de sortie est sur mkv par défaut donc on laisse comme ça. Par contre on positionne “Sortie vidéo” sur “Mpeg 4 AVC (x264)”, puis on clique sur le bouton “Configurer” de la rubrique “Sortie vidéo”.

On décoche “Utilisation avancée”, on positionne “Preset” sur “Medium” et “Profile” sur “High”. Puis on met “Encoding Mode” sur “Average Bitrate (Two Pass)”. Pour le “Bitrate moyen”, on met 500 si le film est au format cinemascope, 600 s’il est en 16/9 (voir ci-dessous). Si vous ne savez pas, mettez 600. Puis on valide.

De retour sur la fenêtre principale, on clique maintenant sur le bouton “Filtres” dans la rubrique “Sortie vidéo”.

Là on peut choisir en empilement de divers filtres qui vont agir sur la vidéo. On ne va utiliser qu’un filtre, celui qui s’appelle “swsResize”, en double cliquant dessus.

On décoche la case “Verrouiller le rapport h/l” et l’on met la largeur sur 720. Pour le chiffre à mettre dans la rubrique “Hauteur”, il y a deux cas : soit le film est au format 16/9 auquel cas on met “400”, soit le films est au format cinemascope (avec des bandes noires en haut et en bas de l’écran) auquel cas on met 304. On laisse la Méthode sur “Lanzcos3”.

Une fois qu’on a fait “Ok”, on peut visualiser le résultat des (du, ici) filtres.

Passons maintenant au paramétrage de l’encodage des pistes son. Pour cela, on va dans le menu “Audio / Choisir les pistes”.

On peut ainsi choisir et paramétrer les pistes son qu’on retient. On positionne le format de sortie sur mp3 et on clique sur “Configurer” pour chaque piste.

On choisit CBR+192+9 comme ci-dessus, et on valide. Reste juste à cliquer sur les boutons “Filtres” de toutes les pistes retenues, dans la fenêtre précédente.

On coche “Remixer”, avec “Mixeur” sur “Stéréo”, et mode de gain sur “Automatique”. On valide.

Il n’y a plus qu’à faire un “enregistrer sous” (icone disquette) pour générer le fichier résultant “vidéo+audio”, et ce après plusieurs minutes de calcul.

Ce fichier ne contient ni les sous-titres, ni la jaquette du film.

Avant de continuer, nous allons installer ce qui manque :

sudo apt-get install mkvtoolnix mkvtoolnix-gui

Pour extraire les sous-titres, nous allons utiliser la commande mkvextract sur le fichier HD 1080p original. Cette commande s’utilise de la manière suivante :

mkvextract tracks fichier_hd_1080p_original numero_de_piste:fichier_extrait

Par exemple, en supposant que les sous-titres français soient contenus en piste 3, on lancera la commande :

mkvextract tracks fichier_hd_1080p_original 3:fr.srt

Ce qui créera le fichier fr.srt

Une fois qu’on a récupéré ainsi tous les sous-titres, on assemble le fichier “video+audio” obtenu précédemment avec les pistes de sous-titres qu’on vient d’obtenir, par la commande :

mkvmerge -o fichier_video_audio_st fichier_video_audio fr.srt en.srt

en supposant que le fichier contenant les sous-titres français soit fr.srt et que en.srt contienne les sous-titres anglais.

Malheureusement, vous constaterez que, si vous rajoutez la jaquette jpg du film sur la ligne de commande, le fichier résultant ne la contiendra pas. Je ne sais pas si c’est un bug mais en tout cas c’est ce qu’on constate.

Heureusement, mkvtoolnix-gui (qui lui est la version graphique) y arrive très bien.

Dans l’onglet “Source”, un clic droit dans la zone du haut permet de sélectionner le fichier contenant tout (vidéo+audio+sous-titres) sauf la jaquette.

Dans l’onglet “Pièces jointes”, un clic droit dans la zone du bas permet de sélectionner le fichier jaquette (jpg).

Ensuite, un clic sur le bouton “Lancer le multiplexage” en bas de l’écran permet de générer le fichier final au format mini DVD tant recherché.

Tagués avec : , , , , ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Résoudre : *
29 + 15 =