Conversion d'un TS en MKV (en gardant les sous-titres)

Contributions au logiciel proposées par certains utilisateurs, et qui peuvent éventuellement intéresser les autres utilisateurs.
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Conversion d'un TS en MKV (en gardant les sous-titres)

Message par illwind »

Bonjour,

Modification du 8 nov 2016

je ne réencode pas le film, juste un 'remuxage' (ça prend 3mn)
les sous-titres sont convertis au format 'idx/vobsub' (-map 0:3 -scodec dvdsub)

j'utilise 3 commandes batch:
extraire l'audio et la video avec mkvmerge
extraire les sous-titres avec ffmpeg
'merger' les 2 fichiers avec mkvmerge ou ffmpeg

mon film est là -ss 00:07:36 -to 01:48:12 / --split parts:00:07:36-01:48:12
je sélectionne aud fre, aud eng, sub fre

Code : Tout sélectionner

ffmpeg -i crime.ts 
Stream #0:0[0x1a4]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x1ae](fra): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:2[0x1af](qad): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:3[0x1b8](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
    Stream #0:4[0x1b0](qaa): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:5[0x1b9](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)

Code : Tout sélectionner

mkvmerge -i crime.ts
File 'crime.ts': container: MPEG transport stream
Track ID 4: video (MPEG-4p10/AVC/h.264)
Track ID 5: audio (AC-3/E-AC-3)
Track ID 6: audio (AC-3/E-AC-3)
Track ID 8: audio (AC-3/E-AC-3)
ce n'est pas le même système de numérotation

pour ffmpeg j'utilise -map 0:3 -scodec dvdsub

pour mkvmerge j'utilise -a 5,8

ffmpeg -map 0 = toutes les pistes du 1° fichier (crimeVA.mkv)
ffmpeg -map 1 = toutes les pistes du 2° fichier (crimeS.mkv)

Code : Tout sélectionner

Subtitle options:
-s size             set frame size (WxH or abbreviation)
-sn                 disable subtitle
-scodec codec       force subtitle codec ('copy' to copy stream)
pour avoir des sous-titres en bas de l’écran rajouter un -s 720x516 dans les commandes ffmpeg concernant les sous-titres:
-s 720x516 -map 0:3 -scodec dvdsub

Code : Tout sélectionner

::video+audio
mkvmerge.exe -o "crimeVA.mkv" -a 5,8 "crime.ts" --split parts:00:07:36-01:48:12

::subtitle
ffmpeg.exe -i "crime.ts" -ss 00:07:36 -to 01:48:12 -vn -an -s 720x516 -map 0:3 -scodec dvdsub -map 0:5 -scodec dvdsub -y "crimeS.mkv"

::merge les 2 
mkvmerge.exe -o "crimeVAS.mkvmerge.mkv" "crimeVA.mkv" "crimeS.mkv"
::OU
fmpeg.exe -i "crimeVA.mkv" -i "crimeS.mkv" -map 0 -c:v copy -c:a copy -map 1 -c:s copy -y "crimeVAS.fmpeg.mkv"

On peut faire tout ça avec un seul batch utilisant ffmpeg, malheureusement il plante 2 fois sur 3 sur des changements rapides de scènes ( zoom, coupure pub..)

Code : Tout sélectionner

ffmpeg.exe -y -i "fichier.ts" -ss 00:10:04 -to 01:43:10 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:3 -acodec copy -map 0:6 -scodec dvdsub "fichier.mkv"


--------------------------------
J'ai crée une petite interface graphique en Autoit3 récupérable sur le forum français autoit3

https://www.autoitscript.fr/forum/viewt ... =6&t=14205

https://en.wikipedia.org/wiki/AutoIt

lancez l'interface en autoit3
glissez votre fichier TS dans la grande fenêtre
sélectionnez vos pistes

ouvrez votre fichier TS avec MPC-HC
allez au début du film, appuyer sur la touche 'd' --> copie du temps récupéré de MPC dans la fenêtre 'debut'
allez a la fin du film, appuyer sur la touche 'f' --> copie du temps récupéré de MPC dans la fenêtre 'fin'
appuyer sur 'b' --> création d'un fichier batch xxx 01.bat
si coupure pub, vous pouvez répéter la manip plusieurs fois

vous pouvez faire aussi 'a la main':
notez vos début/fin dans les fenêtres 'temps' puis file/batch

lancer votre(vos) fichiers batch


A bientôt
Modifié en dernier par illwind le 12 nov. 2016, 08:27, modifié 11 fois.
Ford Prefect
Messages : 24
Enregistré le : 20 avr. 2007, 20:04
Localisation : Beauvais 60000

Re: Récupérer les sous titres d'un enregistrement HD

Message par Ford Prefect »

Merci
Très bonne idée de sujet.
Don't Panic
bb95
Messages : 71
Enregistré le : 26 janv. 2010, 08:57
Carte Tuner : pinnacle 310 i
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Récupérer les sous titres d'un enregistrement HD

Message par bb95 »

Bonjour,

Avec un peu de retard... la nouvelle version de 2.x TS Doctor fait ça automatiquement et très bien. Ca vaut vraiment la vingtaine d'euros demandé pour l'enregistrement.

bb
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Re: Récupérer les sous titres d'un enregistrement HD

Message par illwind »

message supprimé et refonte du 1° message

A Propos de MPC:
je me sert occasionnellement de MPC-HC depuis 10 ans et je viens de remarquer qu'il permet de regarder la TNT
(pas de problème avec les codec, il les a en interne)

Pendant que j'y étais j'ai testé smartdvb: il m'a trouvé 1 multiplex sur 5 et il est compliqué à paramétrer
http://www.smartdvb.net/sdvb/
MPC permet de regarder la TNT
MPC permet de regarder la TNT
copie ecran mpc1.jpg (503.17 Kio) Vu 37761 fois
A+
Dingo Rouge
Messages : 5
Enregistré le : 31 oct. 2016, 10:41
Carte Tuner : Il y a sur ce forum des experts en retraitement vidéo.
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Récupérer les sous titres d'un enregistrement HD

Message par Dingo Rouge »

Bonjour,

N'avez vous pas un problème avec cette méthode depuis le passage à la HD ?

Une fois convertis, mes sous-titres s'affichent maintenant le plus souvent (ça dépends des chaines et/ou de l'enregistreur) en petit au milieu de l'image. Un peu comme si ils étaient en 720 alors que la vidéo est en 1080.

A part l'OCR, avez vous une parade ?

Par avance merci,
Grégory
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Re: Récupérer les sous titres d'un enregistrement HD

Message par illwind »

Bonjour,
mes sous-titres s'affichent maintenant le plus souvent (ça dépends des chaines et/ou de l'enregistreur) en petit au milieu de l'image
Mardi 1°nov j'ai mis à jour mon utilitaire sur le site autoit (le prg et les explications) en particulier le pb des sous-titres et le pb des accents dans les fichiers batch
https://www.autoitscript.fr/forum/viewt ... =6&t=14205

pour le moment je n'ai trouvé que ce bricolage:
"si vous vous retrouvez avec les sous-titres au milieu de l'écran rajoutez size: 720x576 dans le fichier xxx.idx de idx/sub"
vous devez démuxer les sous-titres du mkv, faire la petite bidouille, remuxer le mkv avec cet idx en décochant celui qui est resté dans le mkv

Avant

Code : Tout sélectionner

# VobSub index file, v7 (do not modify this line!)
palette: 000000, 0000ff, 00ff00, ff0000, ffff00, ff00ff, 00ffff, ffffff, 808000, 8080ff, 800080, 80ff80, 008080, ff8080, 555555, aaaaaa

id: en, index: 0
timestamp: 00:00:02:080, filepos: 000000000
timestamp: 00:00:22:960, filepos: 000000800
Après

Code : Tout sélectionner

# VobSub index file, v7 (do not modify this line!)
palette: 000000, 0000ff, 00ff00, ff0000, ffff00, ff00ff, 00ffff, ffffff, 808000, 8080ff, 800080, 80ff80, 008080, ff8080, 555555, aaaaaa

# Original frame size
size: 720x576
id: fr, index: 0
timestamp: 00:00:02:080, filepos: 000000000
timestamp: 00:00:22:960, filepos: 000000800
timestamp: 00:00:29:320, filepos: 000001800
pour extraire l'idx/vosub d'un mkv ( c'est le 0:3 qui est important)

Code : Tout sélectionner

>ffmpeg.exe -y -i "Personne ne bouge.mkv" 
#cherchez une ligne dans ce genre 
>Stream #0:3(fra): Subtitle: dvd_subtitle (default)
#puis
>mkvextract.exe tracks "Personne ne bouge.mkv" 3:"Personne ne bouge.sub"

ou une interface graphique à mkvtoolnix
http://blogs.sapib.ca/apps/mkvcleaver/mkvcleaver-how-to/"

Ca s'appelle la loi de l'emmerdement maximun: les chaines que j'enregistre peu ( tmc,tf1...) les sous-titres sont bien placés, les chaines que j'enregistre souvent ARTE/FRxx les sous-titres sont à 720x576 comment a l'époque de la sd, c'est dire au milieu de l'écran pour un 1920x1080.

c'est un bug que l'équipe de ffmpeg est sensé avoir réparer il y a 15 mois
https://trac.ffmpeg.org/ticket/679
Ouvert il y a 5 ans Fermé il y a 15 mois7
#679 closed defect (fixed) DVB subtitles are badly placed (and scaled) on the screen
et
http://git.videolan.org/?p=ffmpeg.git;a ... c20c6d3686

l'autre bug qui n'énerve c'est le plantage fréquent sur des changements de scénes alors que mkmerge lui ne se plante pas
la méthode pour que ça ne plante pas c'est de travailler avec des frames au lieu des temps
remplacer -ss 00:05:53.04 -to 00:18:22.96
par -vf select='between(n\,'0'\,8495)',setpts=N/FRAME_RATE/TB
mais 'pas de chance' si on utilise le filtre -vf il faut réencoder le film

je viens de découvrir cette nouvelle méthode, if faut dire que l'aide de ffmepg ça n'aide pas beaucoup
https://ffmpeg.org/pipermail/ffmpeg-use ... 16305.html


je pense poster ici un petit tuto " comment encoder un enregistrement tout pourri sans perdre la syncro audio" avec cette méthode



A+
Dingo Rouge
Messages : 5
Enregistré le : 31 oct. 2016, 10:41
Carte Tuner : Il y a sur ce forum des experts en retraitement vidéo.
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Récupérer les sous titres d'un enregistrement HD

Message par Dingo Rouge »

Bonjour,

Merci pour la méthode pour la taille des sous titres, elle marche nickel.

Pour couper le film sans réencoder et contourner les problèmes de ffmpeg, je découpe avec mkvtoolnix au lieu de ffmpeg :
1. J'extrais sans rien couper (ni -ss ni -to) tous les sous-titres avec ffmpeg dans un mkv. Quand il n'y a ni image ni son dans le fichier de sortie, ffmpeg ne plante pas.
2. Désormais et grâce à toi, je retouche au besoins la taille des sous titres après les avoir extrait avec un gui pour mkvextract.
3. Je mets le tout (le ts où mkvtoolnix ne voit pas les sous titres + le mkv des sous titres ou les sub/idx modifiés) dans mkvtoolnix en spécifiant les extraits désirés dans le cadre scission de l'onglet cible. Même en durées ça passe. J'utilise l'option "par parties basées sur des codes temporels".
4. Image, son et sous titres restent synchros. 10 minutes max tout compris pour retraiter un film.

Grégory.
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Re: Récupérer les sous titres d'un enregistrement HD

Message par illwind »

Bonjour,

Test sur "le dessous des cartes" ARTE

si je copie les stream j'ai un plantage a 2mn26, le début d'un zoom sur le carte de l'Inde

Code : Tout sélectionner

ffmpeg.exe -i "dessous cartes.ts" -ss 00:07:50 -to 00:19:36 -map 0:0 -c:v copy -map 0:1 -c:a copy -map 0:5 -c:s dvdsub -y "dessous cartes.copy.mkv"
si je réencode le film je n'ai pas de plantage:

Code : Tout sélectionner

ffmpeg.exe -i "dessous cartes.ts" -ss 00:07:50.00 -to 00:19:36 -map 0:0 -c:v libx264 -crf 20 -preset fast -map 0:1 -c:a aac -map 0:5 -c:s dvdsub -y "dessous cartes.x264.mkv"


A+
Fichiers joints
dessous des cartes plantage 2m26.jpg
dessous des cartes plantage 2m26.jpg (223.51 Kio) Vu 36618 fois
Dingo Rouge
Messages : 5
Enregistré le : 31 oct. 2016, 10:41
Carte Tuner : Il y a sur ce forum des experts en retraitement vidéo.
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Récupérer les sous titres d'un enregistrement HD

Message par Dingo Rouge »

Bonjour,

J'ai juste un APU AMD (une demi PS4), je me refuse à réencoder : trop long pour une qualité d'image pas toujours au rendez vous.

Le plantage de FFMPEG m'énerve aussi. Sans lui, on pourrait tout faire en une étape. Mais, comme je n'ai ni les connaissances ni le temps de contribuer au projet, je contourne.

Du coup je ne comprends pas pourquoi tu t'acharnes à vouloir couper avec FFMPEG alors que tu passes de toute façon par MKVTOOLNIX et que ce dernier ne plante pas à la découpe.

J'insiste, FFMPEG ne plante pas s'il n'extrait que les sous-titres (au passage, vu leur taille et le faible temps d'extraction, pas besoin de s'enquiquiner à choisir celui que l'on veut, je fais le tri après dans MKVTOOLNIX) :

Code : Tout sélectionner

ffmpeg -i "dessous cartes.ts" -scodec dvdsub -vn -an -map 0 -ignore_unknown "subtitle.mkv"
Je remuxe/coupe le TS d'origine avec ce MKV dans MKVTOOLNIX et j'ai un fichier nickel sans trop d'effort (si l'on met à part les heures passées à épelucher le net :wink:) et sans perte. J'ai l'impression qu'un truc m'échappe sur ce que tu recherches vraiment.

Ton post m'a beaucoup aidé, ça m'embête de clore cet échange avec le sentiment qu'un des trucs que je sais faire pourrait t'aider en retour.

Grégory
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Re: Récupérer les sous titres d'un enregistrement HD

Message par illwind »

Bonjour,

Code : Tout sélectionner

Subtitle options:
-s size             set frame size (WxH or abbreviation)
-sn                 disable subtitle
-scodec codec       force subtitle codec ('copy' to copy stream)
rajouter un -s 720x516 dans les commandes ffmpeg concernant les sous-titres:
-s 720x516 -map 0:5 -scodec dvdsub

Code : Tout sélectionner

 ffmpeg.exe -i crime.ts 
Stream #0:0[0x1a4]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x1ae](fra): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:2[0x1af](qad): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:3[0x1b8](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
    Stream #0:4[0x1b0](qaa): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:5[0x1b9](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
pour mkvmerge ce n'est pas le même système de numérotation

Code : Tout sélectionner

mkvmerge -i crime.ts
File 'crime.ts': container: MPEG transport stream
Track ID 4: video (MPEG-4p10/AVC/h.264)
Track ID 5: audio (AC-3/E-AC-3)
Track ID 6: audio (AC-3/E-AC-3)
Track ID 8: audio (AC-3/E-AC-3)
Donc j'utilise mkvmerge -a 5,8 (aud 5 et 8)

ffmpeg -map 0 = toutes les pistes du 1° fichier (crimeVA.mkv)
ffmpeg -map 1 = toutes les pistes du 2° fichier (crimeS.mkv)

Code : Tout sélectionner

::video+audio
mkvmerge.exe -o "crimeVA.mkv" -a 5,8 "crime.ts" --split parts:00:07:36-01:48:12

::subtitle
ffmpeg.exe -y -i "crime.ts" -ss 00:07:36 -to 01:48:12 -vn -an -s 720x516 -map 0:3 -scodec dvdsub -map 0:5 -scodec dvdsub "crimeS.mkv"

::merge les 2 
mkvmerge.exe -o "crimeVAS.mkvmerge.mkv" "crimeVA.mkv" "crimeS.mkv"
::OU
fmpeg.exe -i "crimeVA.mkv" -i "crimeS.mkv" -map 0 -c:v copy -c:a copy -map 1 -c:s copy -y "crimeVAS.fmpeg.mkv"
j'ai sélectionné aud fre, aud eng, sub fre
------------------
Testé sur "Bernard Buffet" sur ARTE , "le crime était presque parfait" sur FR5

Donc maintenant j'ai mon mkv terminé en 3 commandes batch sans plus rien bricoler


------------------
Du coup je ne comprends pas pourquoi tu t'acharnes à vouloir couper avec FFMPEG
je me dit qu'une personne (pourquoi pas le développeur qui est français ?) va passer par là et me régler mon problème avec une option enfouie dans les tréfonds de l'aide ffmpeg:
http://cects.com/wp-content/uploads/201 ... p_full.txt

je préfère utiliser des prg en ligne de commande, car je peux plus facilement les contrôler dans des fichiers batch, ou me faire des petites interfaces graphiques en autoit.
mkvtoolnix-gui a été écrit avec des bibliothèques graphiques QT (linux), je ne sais pas le contrôler avec autoit.par des:

Code : Tout sélectionner

WinMenuSelectItem($g_hWnd, "", "&Image", "Réduction des &yeux rouges (sélection)")
WinMenuSelectItem($g_hWnd, "", "Voir", "Options d'affichage (mode fenêtre)", "Ajuster l'images à la fenêtre")

ça c'est un pilotage de Irfranview


A+
Djeipi
Messages : 6
Enregistré le : 16 déc. 2016, 15:18
Carte Tuner : Pas de carte, mais plusieurs lecteurs...
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Conversion d'un TS en MKV (en gardant les sous-titres)

Message par Djeipi »

Bonjour :)

Je suis tombé par hasard (mais via Gogo) sur ce fil qui répondait à mes préoccupations et en suivant les indications d'Illwind que je remercie chaleureusement, j'ai pu mettre au point une méthodologie personnelle que je propose ici.
Mes errements antérieurs sont visibles ici.
Tous les commentaires et suggestions sont les bienvenus, merci :)


Rappel : il s'agit de nettoyer (début, pubs, fin) les enregistrements PVR de la TNT (et éventuellement FTA des satellites) et de les stocker de façon à ce que leurs caractéristiques de langues et sous-titres restent accessibles après coup à un maximum de lecteurs multimédia externes de tous types, les lecteurs "informatiques" tels que MPC-HC, SMplayer, VLC, etc ne posant pas de problèmes.

J'ai cherché à automatiser au maximum les opérations sous Windows et ceci en n'utilisant que des logiciels gratuits (ça doit pouvoir s'adapter à Linux).
Les liens vers ces logiciels sont indiqués à la fin de ce message, on trouvera aussi d'autres logiciels et quelques commentaires en p.4 du fil.

A. Visionner le *.mts de la clé avec MPC-HC pour vérifier langues et sous-titres et préparer le tri final de ce que l'on veut conserver en matière de langues et sous-titres.
Selon les chaînes, on trouvera 3 ou 4 pistes audio (codage AC3 ou MPEG audio) et 2 ou 3 pistes de sous-titres "dvbsub" la 1ère est généralement qualifiée de "hearing impaired"
Selon les films, la 1ère piste audio est la VF, la 2ème piste audio est la VO ou la VF, la 3ème la VF avec audio-description éventuellement et les sous-titres peuvent être vides, à vérifier avant de lancer la "totale"

B. Si le *.ts obtenu par Videpub (en renommant *.mts => *.m.ts) convient pour les lecteurs envisagés, c'est parfait et c'est terminé.

C. Sinon, alors :

* Une première fois :

- Copier le fichier *.mts depuis la clé dans le dossier de travail dédié où l'on a mis les outils en exécutables et les raccourcis (Avidemux est supposé installé par défaut).
- Lancer Avidemux, modifier "Format de sortie" en MKV, configurer, cocher "force display width", la régler à 1920 (manœuvre utile pour les chaînes qui diffusent en 1440x1080). Menu "Editer" > Sauver les réglages courants comme défaut.
- Quand *.mts est dans le dossier de travail, le renommer "brut.mts" puis le faire glisser dans Avidemux. Si la boîte d'indexation n'apparaît pas, attendre (quelques minutes...)
- Quand le film apparaît :
# Pour la copie audio-vidéo de base : Menu "Fichier" > Project Script > sauvegarder comme projet. Enregistrer sous "brut.py" dans le dossier de travail.
# Pour des modifications, par exemple conversion d'une ou plusieurs pistes audio : Menu "Audio" > Choisir la ou les pistes utiles, en général les deux premières suffisent (fre et vo) car c'est leur conversion qui prend le plus de temps, configurer, OK. Sauver en projet "brutA.py"
- En éditant "brut.py" puis "brutA.py"avec Notepad++, supprimer ces 4 lignes :

Code : Tout sélectionner

adm.clearSegments()

adm.addSegment(0, 0, 7441580000)

adm.markerA = 0

adm.markerB = 7441580000
- sauver et copier dans la boîte à outils, on pourra éditer plusieurs variantes selon les chaînes.
- Préparer le "brut.bat", pour les non-initiés :
# Sélectionner le code ci-dssous, le copier dans un document texte.
# L'éditer : enlever les lignes inutiles, adapter les lignes "java" (autres chaînes à venir). Les "vobsub" vides ne seront pas traitées en java, on peut garder les deux lignes
# Enregistrer sous "brut.bat"

Code : Tout sélectionner


:: Lancement
"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --load brut.mts 

::  Conversion  en MKV avec copies directes vidéo et audio :
"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --run brut.py --save brut.mkv

::  Conversion  en MKV avec copie vidéo et conversion audios en AAC :
"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --run brutA.py --save brutA.mkv

:: Extraction des  dvbsub
ffmpeg.exe -y -i "brut.mts" -vn -an -scodec dvdsub -vn -an -map 0 -ignore_unknown "brutS.mkv"
 
:: Extraction des paires VobSub :  "brut1.idx"  "brut1.sub et " "brut2.idx" "brut2.sub" 
mkvextract tracks brutS.mkv  0:brutS1.srt 1:brutS2.srt

:: Redimensionnement des sous-titres et repositionnement   -I x.x = L/H
:: TF1 TMC  F4  "-S 0.5,0.5"
:: F2  F3  C8   Arte   "-S 1,1"   
java -jar BDSup2Sub512.jar -d 0000 -S 1,1 -l fr -I 2.4,0 -X left 160 -o brutS1r.idx brutS1.idx
java -jar BDSup2Sub512.jar -d 0000 -S 1,1 -l fr -I 2.4,0 -X left 160 -o brutS2r.idx brutS2.idx

pause
* Les fois suivantes, pour chaque film :

- Copier le fichier *.mts depuis la clé dans le dossier de travail dédié où l'on a mis les outils en exécutables et les raccourcis (Avidemux est supposé installé par défaut).
- Pendant ce temps, si la piste "dvbsub" normale n'est pas vide, on peut en extraire le SRT brut avec DVBsub2Text (attention, qui ne verra pas la "hearing impaired") depuis le *.mts de la clé.

- Quand *.mts est dans le dossier de travail, le renommer "brut.mts"
- Lancer le "brut.bat" (double clic).
La première étape, l'indexation peut prendre plusieurs minutes, elle est terminée dès que le fichier "brut.mts.idx2" apparaît dans le dossier de travail, bien le conserver car associé au film, il rendra les éventuelles manipulations du film par Avidemux immédiates.
- Lancer Avidemux normalement (pour obtenir le GUI).
- Faire glisser "brut.mts" dans Avidemux.
- Lancer "MKVtoolnix", aller dans l'onglet "Cible", choisir l'assemblage par parties selon codes temporels
- Dans Avidemux, repérer les points de coupe (curseur, molette, flèches H B G D). Les flèches H et B permettent de couper sur images-clés, pour une vidéo propre.
L'opération est très rapide en visuel grâce à l'astuce des logos de chaines, inspiré de "VidePub" (on peut aussi utiliser "VidePub" pour un pré-repérage automatique)
Copier-coller les codes temporels dans l'ongler "Cible" de MKVtoolnixs ous la forme : 00:10:10.772-00:58:13.372,+01:04:19.772-01:46:15.532,+01:52:25.772-02:18:28.772
Si l'on n'a pas besoin des sous-titres, sans passer par le .bat, on peut nettoyer et sauver tout comme on veut avec Avidemux en utilisant les marqueurs A et B pour effacer en commençant par la fin pour noter quand même les points de coupe, au cas où....
On peut maintenant fermer le GUI, d'Avidemux pour récupérer de la mémoire vive.
- Quand l'exécution de "brut.bat" est terminée (les conversions audio vers AAC prennent une bonne dizaine de minutes sur un portable basique I3, ce sont les plus longues), faire glisser ces fichiers dans MKVtoolnix en triant les désirés parmi :
"brut.mkv", "brutA.mkv", "brutS1r.idx"," brutS2r.idx", "brut.srt" (inutile d'utliser les *.sub)
- Définir le multiplexage (surtout ne pas oublier de décocher l'une des pistes vidéo) et paramétrer selon ses desiderata prédéfinis avec l'aide de MPC-HC.
- Avant de sauver, on peut vérifier le rendu des sous-titres en renommant l'une des paires vobsub en "brut.idx" et" brut.sub" et en lisant "brut.mkv" dans MPC-HC (régler dans menu "Lecture"). Si souci, modifier les lignes "java" et les tester une seule à la fois dans une fenêtre de commandes ouverte dans le dossier de travail (Clic droit+MAJ)
- Sauver.

Code : Tout sélectionner

D:/Filmatraiter/Encours\mkvmerge.exe --ui-language fr --output ^"D:\Filmatraiter\Encours\Film.mkv^" --audio-tracks 1,2 --language 0:und --default-track 0:yes --language 1:und --default-track 1:yes --language 2:und ^"^(^" ^"D:\Filmatraiter\Encours\brut.mkv^" ^"^)^" --no-video --language 1:und --language 2:und ^"^(^" ^"D:\Filmatraiter\Encours\brutA.mkv^" ^"^)^" --language 0:und --default-track 0:no ^"^(^" ^"D:\Filmatraiter\Encours\brutS1r.idx^" ^"^)^" --language 0:und --default-track 0:no ^"^(^" ^"D:\Filmatraiter\Encours\brut.srt^" ^"^)^" --split parts:00:00:01.360-00:53:21.000 --track-order 0:0,0:1,0:2,1:1,1:2,2:0,3:0

Addendum : pour les films, on pourra en général trouver sur le net des sous-titres SRT en diverses langues.
Pour les insérer, il faudra d'abord les synchroniser en utilisant par exemple "Subtitle Edit" avec le film préalablement nettoyé aux "keyframes" (impératif).


ANNEXE :

# Pour nettoyer directement et rapidement les début, pubs, fin :
Videpub
A installer et mettre un raccourci dans la boîte à outils.
Renommer auparavant "brut.mts" en "brut.m.ts"

# L'outil fondamental :
Avidemux
A installer dans le dossier proposé par défaut et mettre un raccourci dans la boîte à outils.

# Son adjoint :
FFmpeg
A installer, puis copier l'exécutable "ffmpeg.exe" dans la boîte à outils.

# Pour remettre les sous-titres VobSub en bonne place (et faire plus encore):
BDSup2Sub
Celui-ci peut aussi fonctionner en ligne de commande
Dézipper et copier "BDSup2Sub512.jar" dans la boîte à outils.

# Pour finaliser :
MKVToolNix
A installer, puis copier les exécutables "mkvtoolnix-gui.exe", "mkvextract", "mkvmerge.exe" dans la boîte à outils.

# Pour extraire directement le SRT (quand le "dvbsub" correspondant existe dans le "brut.mts" et est non vide.
Attention, ce logiciel semble ne pas détecter les sous-titres "dvbsub hearing impaired" :
DVBSub2Text
A installer puis mettre un raccourci dans la boîte à outils.
Penser à réencoder le "brut.srt" en UTF 8 avec par exemple "Notepad++"


Et enfin voici le contenu de la boîte à outils à copier dans le dossier de travail pour exécuter le "brut.bat" ou au coup par coup une ligne en fenêtre de commandes :

Image
Dingo Rouge
Messages : 5
Enregistré le : 31 oct. 2016, 10:41
Carte Tuner : Il y a sur ce forum des experts en retraitement vidéo.
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Conversion d'un TS en MKV (en gardant les sous-titres)

Message par Dingo Rouge »

Bonjour,

Question subsidiaire :
Comment fais tu quand il y a des incohérences qui génèrent des décalages ?

MKVMerge me dit qu'il y a un soucis mais ne sait pas recaler.

En SD, si ça arrivait, je passais par ProjectX pour démuxer et il remettait les flux d'équerre. Il ne gère malheureusement pas la HD, as tu une alternative ?

Cordialement,
Grégory
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Re: Conversion d'un TS en MKV (en gardant les sous-titres)

Message par illwind »

Bonjour,

Avant de passer au 'tout batch' j'utilisais l'équivalent de ProjectX pour le H264:

Ici mon post original de mai 2016
-----------------------------------------------------------
h264ts_cutter programme gratuit qui coupe et réindexe un fichier AVC(H264) en gardant les soustitres
les programmes tel que TSSniper et tsMuxeR ne garde pas les sous-titres.

----------------------------------------------------
1° h264ts_cutter
http://www.videohelp.com/software/H264TS-Cutter
H264TS_Cutter is a HDTV-Transportstreams (AVC / H.264) cutter. A ts-splitter and an avc-codec have to be installed. Requires .Net Framework 2.0

il faut installer:

un 'ts-splitter' par exemple Haali media splitter
http://www.videohelp.com/software/Haali-Media-Splitter

un 'avc-codec' par exemple ffdshow, mais vous l'avez déjà pour PouchinTV

-----------------------------------------------------------
2° passer des soustitres 'bitmap' aux soustitres texte (srt)
Subtitle Edit 3.4.12
http://www.nikse.dk/
Can open/OCR DVB subtitles embedded inside .ts (Transport Stream) files
can use Tesseract / Spell checking via Open Office dictionaries/NHunspell (many dictionaries available)

pour faire la reconnaissance de caractères (OCR) en français il faut installer le dictionnaire francais
(menu orthographe / installer un dictionnaire)

vous faites 'fichier / ouvrir' <fichier_cut.ts>
et c'est parti, la reconnaissance fonctionne bien mieux qu'en SD.

---------------------------------------------------------
3° OPTIONNEL récupérer les idx/sub avec ffmpeg en ligne de commande
https://trac.ffmpeg.org/wiki/HowToBurnS ... sIntoVideo

>ffmpeg.exe -i "fichier_cut.ts"
pour trouver la bonne piste (map) pour moi c'est la 3 (il faut chercher un 'dvb_subtitle')
Stream #0:3[0xf0](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)

>ffmpeg.exe -i "fichier_cut.ts" -vn -an -map 0:3 -scodec dvdsub "fichier_cut.3.fra.mkv"

-i fichier TS
-vn pas de video
-an pas d'audio
-map 0:3 ma piste soustitre
-scodec dvdsub le codec pour les soustitres
"fichier_cut.3.fra.mkv" le fichier de sortie qui ne contient que l'idx/sub

extraire le idx/sub du mkv --> MKVcleaver.exe
MKVcleaver is a GUI for mkvtoolnix, designed to extract data from MKV files.

ou pour continuer en ligne de commande:
>mkvextract.exe tracks "fichier_cut.3.fra.mkv" 0:"fichier_cut.3.fra.sub"

---------------------------------------------------------------
4° OPTIONNEL récupérer les idx/sub avec ProjectX
ProjectX est incapable de demuxer un flux AVC/H264, mais il peut très bien demuxer les fichiers audio ET les sous-titres d'un fichier HD TS.
dans Presettings cocher 'enable HD subtitle'
dans Presettings/subtitle cocher 'additional export as Vobsub'
en bas de la fenetre principale dans la tab 'filter control' puis 'stream types to process' NE garder que 'Subpicture'

ici mon fichier X.ini qui vous éviter le boulot ci-dessus (a copier dans le repertoire de ProjectX)
#---------------------------------------
# Project-X INI
# ProjectX 0.91.0.09 / 25.01.2014

OptionPanel.enableHDDemux=1 # ICI

# Application
Application.ActiveDirectory=E:\DVD
Application.Agreement=1
Application.Language=en

# CollectionPanel
CollectionPanel.CutMode=0

# ExportPanel
ExportPanel.Streamtype.MpgAudio=0 # ICI
ExportPanel.Streamtype.MpgVideo=0 # ICI
ExportPanel.Streamtype.PcmAudio=0 # ICI

# MainPanel
MainPanel.useAllCollections=1

# SubtitlePanel
SubtitlePanel.SubpictureColorModel=ZDFvision(mc)
SubtitlePanel.SubtitleExportFormat=SRT
SubtitlePanel.SubtitleExportFormat_2=SSA
SubtitlePanel.TtxPage1=null
SubtitlePanel.TtxPage2=null
SubtitlePanel.TtxPage3=null
SubtitlePanel.enableHDSub=1
SubtitlePanel.exportAsVobSub=1 # ICI
SubtitlePanel.keepColourTable=1
SubtitlePanel.keepOriginalTimecode=1

# WindowPosition
WindowPosition.Main.Height=888
WindowPosition.Main.Width=1307
WindowPosition.Main.X=110
WindowPosition.Main.Y=41
#-------------------------------------------------


A propos de ProjectX:
Il est très bien pour démuxer les VOB d'un DVD tout rayé (ceux emprunter à la médiathèque au hasard)



ICI le pourquoi du comment je suis passé au tout batch 2 mois plus tard
------------------
autres méthodes:

Pourquoi ?
Scarface (1931 H Hauwks) Arte le 1 aout 2016
h264ts_cutter, TSSniper, tsMuxeR s'y sont cassés les dents
-------------------

logiciels utilisés:
https://ffmpeg.org/download.html
http://www.videohelp.com/software/MKVtoolnix
http://www.nikse.dk/ (Subtitle Edit)
http://smplayer.sourceforge.net/fr/downloads ou https://mpc-hc.org/
------------


1° Methode

noter le début et la fin du film avec un player (mpc-hc, smplayer...)
récupérer la vidéo et les audio avec mkvmerge --> "Scarface_vid_aud.mkv"
récupérer le sub avec ffmpeg --> "Scarface_sub.mkv" (fichier mkv uniquement composé d'un soustitre au format idx/sub)
accessoirement transformer le "idx/sub" en "srt" avec Subtitle Edit (fichier/ouvrir "Scarface_sub.mkv") --> "Scarface.srt"
avec mkvtoolnix-gui "merger" les différents fichiers obtenus (option ajouter des fichiers) et sélectionner les bonnes pistes (ici 2 audio sur 4 :fre et eng, idx/sub et srt)

>mkvmerge.exe "Scarface.ts" --split parts:00:11:44-01:41:03 -o "Scarface_vid_aud.mkv"
--split parts:00:11:44-01:41:03 : démarrer à 11m44s et arrêter à 1h41m03s

>ffmpeg.exe -i "Scarface.ts"
Stream #0:6[0x155](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
pour avoir la bonne "map" ici la 6

>ffmpeg.exe -i "Scarface.ts" -ss 0:11:44 -to 01:41:03 -vn -an -map 0:6 -scodec dvdsub "Scarface_sub.mkv"
-vn -an : pas de video pas d'audio
-------------


2° Methode

tout faire avec ffmpeg en une opération.
ca passe pour 'the player', 'la grande bouffe', '3 hommes a abattre'
mais pas pour 'deux frere'(10sec fin du logo pathé) scarface(56sec fin du generique) 'la tete de maman'(55mn coupure pub) 'Hercule Poirot'(33mn coupre pub)

>ffmpeg.exe -i "player.ts" -ss 1:51:27 -to 3:50:00 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:3 -acodec copy -map 0:6 -scodec dvdsub "player.mkv"
je démarre à 1h51m27s (j'avais une série danoise avant) jusqu'a 3h50m, 0:1 aud fre, 0:3 aud eng, 0:6 sub fre

>ffmpeg.exe -i "grande bouffe.ts" -ss 11:17 -to 2:15:51 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:5 -scodec dvdsub "grande bouffe.mkv"

Si ca ne passe pas je fait en 3 opérations (voir la 1° Méthode)
>mkvmerge.exe "Deux freres.ts" --split parts:10:35-01:40:18 -o "Deux freres.vid_aud.mkv"
>ffmpeg.exe -i "Deux freres.ts" -ss 10:35 -to 01:40:18 -vn -an -map 0:4 -scodec dvdsub "Deux freres.sub.mkv"
mkvtoolnix-gui remuxage des bonnes pistes
---------------------


3° Methode

les coupures pub et certains génériques c'est mortel pour ffmpeg donc on crée plusieurs fichiers en sautant les pub

ffmpeg.exe -i "Hercule Poirot.ts" -ss 00 -to 33:53 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:4 -scodec dvdsub "Hercule Poirot.1.mkv"
ffmpeg.exe -i "Hercule Poirot.ts" -ss 39:40 -to 1:05:38 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:4 -scodec dvdsub "Hercule Poirot.2.mkv"
ffmpeg.exe -i "Hercule Poirot.ts" -ss 1:10:12 -to 1:42:21 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:4 -scodec dvdsub "Hercule Poirot.3.mkv"
puis mkvtoolnix-gui option 'Concaténer des fichiers'
----------------------


testé:
numero23: la tete de maman, un enregistrement de 2015, 1 audio
FR4: Deux freres , 2 audio + soustitre
ARTE: scarface,the player,la grande bouffe, 2 audio + soustitre
FR3: 3 hommes a abattre 1 audio + soustitre
TMC: Hercule Poirot, 1 audio + soustitre
----------------------

Conclusion:

Moi les coupure pub ca ne me concerne pas, j'enregistre surtout le service public (en particulier ARTE)

A partir d'aujourd'hui je vais utiliser la méthode ffmpeg pour:
sa simplicité --> un prg a copier où on veut, pas d'installation, pas de codec/.NET/Java à installer
sa vitesse --> 1mn au lieu de 10mn avec h264ts_cutter (portable Asus Intel I3 de 2010 / SSD de 128GO)
la possibilité d'automatiser grace à des batch, par exemple remuxer tout un répertoire de séries TV

>ffmpeg.exe -i "3_hommes_abattre.ts"
Stream #0:0[0xdc]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv,bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn
Stream #0:1[0xe6](fre): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s
Stream #0:2[0xe7](qad): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s
Stream #0:3[0xf0](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)

>ffmpeg.exe -i "3_hommes_abattre.ts" -ss 12:27 -to 1:43:56 -map 0:0 -vcodec copy -map 0:1 -acodec copy -map 0:3 -scodec dvdsub "3_hommes_abattre.mkv"

et dans les cas difficiles mkvmerge + ffmpeg
Modifié en dernier par illwind le 20 déc. 2016, 07:56, modifié 1 fois.
Djeipi
Messages : 6
Enregistré le : 16 déc. 2016, 15:18
Carte Tuner : Pas de carte, mais plusieurs lecteurs...
Êtes-vous un robot ? : Je ne suis pas un robot

Re: Conversion d'un TS en MKV (en gardant les sous-titres)

Message par Djeipi »

Hello :)

Merci Illwind, voici de la matière à cogitations !

Je vais regarder tout ça au fur et à mesure des observations que je ferai en visionnant les films traités avec ma dernière mouture "batch" ci-dessous, proche de la 1ère méthode d'Illwind ci-dessus.

------------------------------------------------------
EDIT du 24/12/16

Ce qui suit est en voie de péremption, version "beta" d'un batch plus complet à venir en p 2
_______________________________________________________________________________

Voici donc un batch où j'ai rajouté la conversion des "vobsub" en SRT, c'est plus long mais ça roule tout seul et le mux final ne prend que quelques minutes.
Le code pour le SRT est plutôt bovin car je ne suis pas un pratiquant de la LC, mais il marche !

"Subtitle Edit" vient de passer en 3.5.1 (perso, j'ai dézippé la version portable).
Et puisqu'il peut aussi fonctionner en ligne de commandes, il est envisageable de procéder à une conversion des paires *idx et *sub en *.srt, format "texte" éditable qui ne nécessite pas de mise en page spécifique à la chaîne.
Il est nécessaire la 1ère fois de lancer normalement SE (donc par le GUI) pour télécharger les dico et correcteur d'orthographe "français", ça peut durer un peu. Quand c'est terminé, fermer le GUI.

Voici le code pour la piste "malentendants" que l'on peut ajouter au "brut.bat" après le "mkvextract".
On doit pouvoir coder plus simple, je ne suis pas un spécialiste de la LC, j'ai indiqué ici mes chemins absolus car il se passe des choses bizarres autrement :

Code : Tout sélectionner

copy brutS1.sub D:\Filmatraiter\Outils\SE351\brutS1.sub
copy brutS1.idx D:\Filmatraiter\Outils\SE351\brutS1.idx
cd D:\Filmatraiter\Outils\SE351\
SubtitleEdit/convert brutS1.sub subrip
move brutS1.srt D:\Filmatraiter\Encours\brutS1.srt
del brutS1.*
cd D:\Filmatraiter\Encours\
L'OCR est assez long,comme avec DVBsub2Text, une bonne dizaine de minutes et même plus long, mais il peut le compléter pour la piste "malentendants", ou même le remplacer pour la piste normale en automatisation complète, en utilisant ce code :

Code : Tout sélectionner

copy brutS2.sub D:\Filmatraiter\Outils\SE351\brutS2.sub
copy brutS2.idx D:\Filmatraiter\Outils\SE351\brutS2.idx
cd D:\Filmatraiter\Outils\SE351\
SubtitleEdit/convert brutS2.sub subrip
move brutS2.srt D:\Filmatraiter\Encours\brutS2.srt
del brutS2.*
cd D:\Filmatraiter\Encours\

Pour moi, le véritable intérêt de la manip est soit de n'avoir qu'un "brut.bat" unique valable pour toutes les chaînes en multiplexant le SRT, soit moyennant une rapide édition d'une ou des deux lignes "java"d'intégrer le ou les VobSub .

Du coup, j'ai revu ma séquence de travail en tout automatique, test sur "Titanic", diffusé hier soir sur TF1, programmé selon l'EPG pour 20:55, points de coupe pour ceux qui l'auraient aussi enregistré:
00:12:49.040-01:03:08.680,+01:08:49.320-01:31:29.840,+01:37:37.040-03:25:26.640

Rappel : "Avidemux" est installé par défaut, "Subtitle Edit" portable dézippé là où l'on veut, noter le chemin, voir les indications plus haut.

* Le contenu du dossier de travail "Encours" :

- Raccourci vers "Avidemux 2.6 - 64 bits"
- BDSup2Sub512.jar
- brut.py
- brutA.py
- ffmpeg.exe
- index.bat
- mkvextract.exe
- mkvmerge.exe
- mkvtoolnix-gui.exe
- Totale.bat

* Les fichiers spécifiques :

"index.bat"

Code : Tout sélectionner

:: Indexation, dure plusieurs minutes
"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --load brut.mts --quit
"Brut.py" :

Code : Tout sélectionner

#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()
adm.loadVideo("D:/Filmatraiter/Encours/brut.mts")
adm.videoCodec("Copy")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"")
adm.setSourceTrackLanguage(1,"")
adm.setSourceTrackLanguage(2,"")
adm.setSourceTrackLanguage(3,"")
adm.audioAddTrack(0)
adm.audioCodec(0, "copy");
adm.audioSetDrc(0, 0)
adm.audioSetShift(0, 0,0)
adm.audioAddTrack(1)
adm.audioCodec(1, "copy");
adm.audioSetDrc(1, 0)
adm.audioSetShift(1, 0,0)
adm.setContainer("MKV", "forceDisplayWidth=True", "displayWidth=1920")
"BrutA.py" :

Code : Tout sélectionner

#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()
adm.loadVideo("D:/Filmatraiter/Encours/brut.mts")
adm.videoCodec("copy")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"und")
adm.setSourceTrackLanguage(1,"und")
adm.setSourceTrackLanguage(2,"")
adm.setSourceTrackLanguage(3,"")
adm.audioAddTrack(0)
adm.audioCodec(0, "FDK_AAC");
adm.audioSetDrc(0, 0)
adm.audioSetShift(0, 0,0)
adm.audioAddTrack(1)
adm.audioCodec(1, "FDK_AAC");
adm.audioSetDrc(1, 0)
adm.audioSetShift(1, 0,0)
adm.setContainer("MKV", "forceDisplayWidth=True", "displayWidth=1920")
La "Totale" :

Code : Tout sélectionner


::  Conversion  en MKV avec copies directes vidéo et audio :
"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --run brut.py --save brut.mkv

::  Conversion  en MKV avec copie vidéo et conversion audios en AAC :
"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --run brutA.py --save brutA.mkv

:: Extraction des  dvbsub
ffmpeg.exe -y -i "brut.mts" -vn -an -scodec dvdsub -vn -an -map 0 -ignore_unknown "brutS.mkv"
 
:: Extraction des paires VobSub :  "brut1.idx"  "brut1.sub et " "brut2.idx" "brut2.sub"  (1 = malentendants")
mkvextract tracks brutS.mkv  0:brutS1.srt 1:brutS2.srt

:: Redimensionnement des sous-titres et repositionnement, lignes à éditer si besoin,   -I x.x = L/H
:: TF1  TMC   F4  C8  NT1   "-S 0.5,0.5"
:: F2  F3  C8   Arte   "-S 1,1"   
java -jar BDSup2Sub512.jar -d 0000 -S 0.5,0.5 -l fr -I 2.4,0 -X left 160 -o brutS1r.idx brutS1.idx
java -jar BDSup2Sub512.jar -d 0000 -S 0.5,0.5 -l fr -I 2.4,0 -X left 160 -o brutS2r.idx brutS2.idx

:: SRT > 10 - 20 minutes
copy brutS2.sub D:\Filmatraiter\Outils\SE351\brutS2.sub
copy brutS2.idx D:\Filmatraiter\Outils\SE351\brutS2.idx
cd D:\Filmatraiter\Outils\SE351\
SubtitleEdit/convert brutS2.sub subrip
move brutS2.srt D:\Filmatraiter\Encours\brutS2.srt
del brutS2.*
cd D:\Filmatraiter\Encours\
pause
* Le process automatique :

- Copier "*.mts" de la clé vers le dossier de travail contenant outils et raccourci vers Avidemux
- Renommer le "*.mts " copié => "brut.mts"
- Lancer "index.bat", attendre l'arrivée de "brut.idx2"
- Lancer le GUI "Avidemux", y faire glisser "brut.mts"
- Relever " à l'oeil" le format du film ( L/H = -I 2.4,0 ou -I 1.8,0 ) et éditer dans "Totale.bat" les deux lignes "java" en conséquence en tenant compte de la chaîne (-S 1,1 ou -S 0.5,0.5), sauver.
- Si besoin (par exemple "Arte FTA" sur le sat. Astra), modifier les réglages d'Avidemux, sauver chaque configuration comme projet en "brut*.py", puis alors les éditer dans "Totale.bat"
- Lancer "Totale.bat"
- Lancer "mkvtoolnix-gui.exe", choisir l'onglet "Cible" > parties définies par codes temporels.
- Repérer les points de coupe, les copier-coller dans MKVToolNix
- Fermer le GUI "Avidemux"

Faire autre chose pendant que ça mouline...


* Terminer en faisant glisser les fichiers résultats voulus dans la zone idoine de MKVToolNix (ne pas oublier de décocher l'une des pistes vidéo), configurer, renommer le "film nettoyé", lancer le mux.

Ou plus simple encore, après configuration par le GUI selon ses habitudes (sauvegardable) ici VOST par défaut mais modifiable dans le lecteur : deux pistes audio VF et VO en AC3 et AAC, deux pistes 'VobSub malentendants et normale, une piste ST normale en SRT, copier les points de coupe dans la LC issue de MKVtn, puis la lancer directement dans la fenêtre (copier puis clic droit dedans ) à la suite de "pause".
Le chemin qui suit output peut être modifié vers le support d'archivage et cette ligne peut être copiée et collée à la fin du "Totale.bat".

Code : Tout sélectionner

D:/Filmatraiter/Encours\mkvmerge.exe --ui-language fr --output "D:\Filmatraiter\Encours\Film_nett.mkv" --language 0:und --default-track 0:yes --language 1:fre --language 2:eng --default-track 2:yes "brutA.mkv" --no-video --language 1:fre --language 2:eng "brut.mkv" --language 0:und "brutS1r.idx" --language 0:fre --default-track 0:yes "brutS2r.idx" --language 0:fre "brutS2.srt" --split parts:00:07:18.920-00:59:07.200,+01:04:22.120-01:46:26.720,+01:52:27.080-02:47:34.560 --track-order 0:0,0:1,0:2,1:1,1:2,2:0,3:0,4:0
pause
_________________________________________________________________________________________

En réponse à Gregory, j'ai l'impression qu'Avidemux (ADM) fait une sorte de travail de régénération des erreurs grâce à son indexage, c'est pourquoi j'utilise une recopie V + A dans le multiplexage final plutôt que le MTS d'origine pourtant recevable directement par MKVtn (sauf qu'il ne voit pas les dvbsub), du coup je n'ai plus de décalages A/V ni d'ailleurs avec les sous-titres (l'extraction depuis le MTS par FFmpeg semble résistante), ceci vérifié sur un vieux lecteur "WD HD live" sur des films avec 2 coupures, Titanic, Retour II et Retour III. Par contre j'ai un plantage A -V qui arrête l'enregistrement MKV par ADM lors d'un gros cafouillis vidéo (qui pôurtant passe bien sur ADM en lecture mais qui fait planter MPC-HC en lecture ) du film "Retour I", que j'avais enregistré dans la foulée de "Retour II" sur TMC.
Si je muxe en final directement avec le MTS et les pistes audio AAC converties par ffmpeg avec cette ligne :

Code : Tout sélectionner

:: convert AAC
ffmpeg -i "brut.mts" -map 0:1 -map 0:2 -c:a aac -b:a 128k "brutAAC.mkv"
pause
c'est bon mais j'ai alors une anticipation sensible (# 2s) de tous les sous-titres après le crash.
Même si le jeu n'en vaut pas trop la chandelle, mais quand même pour savoir, j'ai essayé, inspiré par les méthodes d' Illwind, de supprimer les 2s entre "keyframes" contenant le crash avec le GUI ADM (en sauvant "brut.mkv"" et "brutA.mkv"), de les supprimer aussi après extraction et conversion dans les 3 pistes finales de sous-titres VobSub et SRT avec MKVtn et de massicoter l'ensemble avec MKVtn en corrigeant les derniers points de coupe. Artisanal mais efficace !
---------------------------------------------------------------------------------------------------------------------------
Tous commentaires, demandes d'explication et suggestions sont les bienvenus :)
Modifié en dernier par Djeipi le 25 déc. 2016, 17:20, modifié 6 fois.
illwind
Messages : 19
Enregistré le : 06 mai 2012, 17:14
Carte Tuner : conceptronic CTVDIGUSB2 + avermedia a850
Êtes-vous un robot ? : Je ne suis pas un robot
Localisation : toulouse

Re: Conversion d'un TS en MKV (en gardant les sous-titres)

Message par illwind »

Re bonjour,

En fait je répondais a:
Dingo Rouge a écrit : Question subsidiaire :
Comment fais tu quand il y a des incohérences qui génèrent des décalages ?
MKVMerge me dit qu'il y a un soucis mais ne sait pas recaler.
En SD, si ça arrivait, je passais par ProjectX pour démuxer et il remettait les flux d'équerre. Il ne gère malheureusement pas la HD, as tu une alternative ?
Cordialement,
Grégory
Djeipi
Je vais étudier ton post qui:
  • me parait bien bien compliqué
    a l'air de concerner les bluray (mts=bluray)
Répondre