blami tec

Alguns apunts de tecnologia

Extreure subtítols d’un mkv

leave a comment »

Tinc un .mkv ple de pistes d’audio i subtítols en diferents idiomes, i una tele que no el permet gestionar.

Converteixo el vídeo a mp4 fent servir HandBrake. Funciona molt bé i fins i tot em permet fer-ho des de línia de comandes:

$ nice HandBrakeCLI -i nom.mkv -o nom.mp4

Tot i que HandBrake es manega també amb els subtítols, no me n’he sabut sortir per extreure’ls en un fitxer apart.

La solució m’ha vingut per una altra eina mkvtoolbox.

Per obtenir la llista de pistes contingudes al fitxer:

$ mkvmerge -i nom.mkv
Fitxer «nom.mkv»: contenidor: Matroska
ID de la pista 0: video (MPEG-H/HEVC/h.265)
ID de la pista 1: audio (AAC)
ID de la pista 2: audio (AAC)
ID de la pista 3: subtitles (SubStationAlpha)
ID de la pista 4: subtitles (SubStationAlpha)
ID de la pista 5: subtitles (SubStationAlpha)
ID de la pista 6: subtitles (SubStationAlpha)
ID de la pista 7: subtitles (SubStationAlpha)
ID de la pista 8: subtitles (SubRip/SRT)
ID de la pista 9: subtitles (SubRip/SRT)
ID de la pista 10: subtitles (SubRip/SRT)
ID de la pista 11: subtitles (SubStationAlpha)
…

La veritat és que el resultat no és gaire descriptiu perquè no et diu en quin idioma és cada subtítol.

Per poder saber a quin idioma correspon cada pista, una opció és fer servir:


$ mkvinfo nom.mkv
…
| + Pista
|  + Número de la pista: 5 (ID de la pista per a «mkvmerge» i «mkvextract»: 4)
|  + UID de la pista: 12122612628107263142
|  + Tipus de pista: Subtítols
|  + Etiqueta «Pista per omissió»: 0
|  + Etiqueta del lligam: 0
|  + ID del còdec: S_TEXT/UTF8
|  + Idioma: rus
|  + Nom: Full
…

Suposem que descobrim que ens interessa el subtítol de la pista 4. Per extreure’l fem:

$ mkvextract tracks nom.mkv 4:nom.srt

I ja ho tindríem!

Written by blami

5 Març 2022 a 11:47

Arxivat a General

Tagged with

Deixa un comentari