Retravailler les enregistrements de vos décodeurs enregistre

Adaptateurs TNT MPEG2, MPEG4, HEVC/H265...

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Djeipi » 17 Déc 2016 12:11

Message supprimé réactualisé le 6/1/17
Dernière édition par Djeipi le 06 Jan 2017 19:42, édité 6 fois.
Djeipi
Coccinelle
Coccinelle
 
Messages: 112
Inscription: 07 Déc 2015 23:07

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Djeipi » 17 Déc 2016 19:25

Message supprimé réactualisé le 6/1/17
Dernière édition par Djeipi le 06 Jan 2017 19:42, édité 2 fois.
Djeipi
Coccinelle
Coccinelle
 
Messages: 112
Inscription: 07 Déc 2015 23:07

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Ann » 27 Déc 2016 16:13

bonjour
ma question s'adresse aux pro d'avidemus : depuis quelques temps, les vidéos retouchées par avidemus n'ont pas de son audible sur etimo 2T, j'ai pourtant l'impression de faire les mêmes manipulations qu'auparavant. je précise que je suis vraiment débutante dans ces manips, celles du dessus me paraissant être du chinois, merci pour votre aide
Ann
 
Messages: 2
Inscription: 26 Déc 2016 18:47

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar kmf31 » 27 Déc 2016 18:19

Ann a écrit:bonjour
ma question s'adresse aux pro d'avidemus : depuis quelques temps, les vidéos retouchées par avidemus n'ont pas de son audible sur etimo 2T, j'ai pourtant l'impression de faire les mêmes manipulations qu'auparavant.


Il faut preciser "ces manipulations" (vraiment en detail !). Il est tout a fait possible que les problemes sont arrives depuis le passage en HD en avril 2016. Par exemple si on avant l'avril 2016 on a fait un ancien enregistrement mpeg2/SD en video et mp2/mpega en audio alors si on cree (dans avidemux) un fichier avec encapsulation (containeur) PS alors ca marchait bien avec le son. Cependant en HD/mpeg4 et l'audio ac3+ depuis le 5 avril, alors l'encapsuation PS n'accepte plus l'audio !! Dans ce cas il faut creer un fichier TS. Honnetement je ne suis pas 100% sur moi meme si avidemux marche si bien avec le mpeg4 (il semble que oui avec une version tres recente ??).

je précise que je suis vraiment débutante dans ces manips, celles du dessus me paraissant être du chinois, merci pour votre aide


Il te faut quand meme faire un effort de decrire "ce que tu fais" et aussi on peut un peu s'informer par google/wikipedia/doc d'Avidemux etc. (par exemple sur la difference entre PS et TS, le fait qu'avidemux permet de choisir facilement l'un ou l'autre) etc. Normalement les enregistrements TNT sont en TS mais a l'epoque du SD/mpeg2 le PS etait utile mais de nos jours pour l'HD on doit l'eviter.

Attention: TS et PS n'est pas un codec (comme mpeg2 ou mpeg4) mais une facon "d'emballer" les fichiers et avidemux propose les deux. En principe PS etait mieux pour des fichiers mais comme deja dit en HD/mpeg4 il faut rester avec TS (ou peut-etre passer au MKV, je crois ?).

Aussi on peut verifier si apres la manipe sur le PC le fichier marche bien avec vlc (facile a trouver/telecharger et installer en Windows) pour audio pour savoir si c'est un probleme du fichier lui meme ou seulement du decodeur.
Modérateur des forums TVNT
---
Réception TNT depuis les deux émetteurs de Toulouse Lafilaire et Pech David
kmf31
Brigades du Tigre
Brigades du Tigre
 
Messages: 6089
Inscription: 27 Juin 2005 15:12

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar cyberdom » 27 Déc 2016 18:44

kmf31 a écrit:Honnetement je ne suis pas 100% sur moi meme si avidemux marche si bien avec le mpeg4 (il semble que oui avec une version tres recente ??).

De mon côté, j'ai Avidemux 2.6.12 et il accepte les fichiers HD de la TNT ou de la Freebox. J'utilise le plus souvent comme format de sortie le mp4 ou le mkv.
CGV Etimo 1T (TNT)
HDHomeRun CONNECT DUO et Tvheadend Server (TNT sur mon réseau local)
Molotov TV (IPTV)
Avatar de l’utilisateur
cyberdom
The king !
The king !
 
Messages: 11301
Inscription: 18 Juil 2007 17:16
Localisation: Lorraine

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Ann » 28 Déc 2016 09:35

kmf31 a écrit:
Il faut preciser "ces manipulations" (vraiment en detail !).

Merci pour ta réponse ultra rapide et tes explications : ma video modifiée passe normalement sur VLC
j'avais bien compris qu'il fallait enregistrer en ts, donc : je charge la video, choisis mpeg TS, je sélectionne par A et B le debut et la fin d'une pub, et je fais Supp sur le clavier ou éditer couper ou effacer et sauve la video sans reencodage je pense
de mème, j'ai essayé videpub trés rapide et efficace mais là encore je dois mal faire car ma video d'arrivée fait le mème temps et le meme "poids" que celle de départ: là je charge la video je cherche les parties à conserver par ajouter, crochet de départ puis d'arrivée de chaque partie à conserver puis enregistre tous les segments selectionnés

cyberdom a écrit:
j'ai Avidemux 2.6.12 et il accepte les fichiers HD de la TNT

J'avais moi aussi une version ancienne d'avidemus et j'ai changé pour la + récente, je vais testé avec une ancienne
merci à tous 2 pour votre aide
Ann
 
Messages: 2
Inscription: 26 Déc 2016 18:47

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Anonymous » 28 Déc 2016 18:29

Djeipi a écrit:MISE A JOUR

Hello :)

Voici une première conclusion à mes errements des pages précédentes.


Bonsoir
Merci en tous cas ,j'ai pas testé, pour ta contribution a ce sujet.
Anonymous
 

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Djeipi » 03 Jan 2017 23:59

Hello :)

Tout d'abord, bonne année à toutes et à tous !

Pour info, Avidemux vient de passer en 2.6.16 et MKVToolNix en 9.7.1

Quelques réflexions personnelles issues de mes essais pour créer mon BAT presse-boutons :
- Le conteneur MKV en HD me semble passer sur la grande majorité des lecteurs externes et sa souplesse de configuration en fait un outil de choix.
Concernant l'audio, la TNT HD diffuse très majoritairement en AC3, les replays sont en AAC. Certains lecteurs ne comprennent pas l'un ou l'autre format.
- Pour le nettoyage des "directs": début, pubs, fin, Avidemux en recopie directe vidéo et recopie ou réencodage audio est plus fin que VidePub, mais il perd les sous-titres. Mon BAT intègre une usine à gaz pour les réintégrer dans le MKV, en présentation d'origine et/ou SRT, pour usage avec les films VO et ceux F où les minettes sussurantes sont inaudibles pour les vieilles oreilles, j'y reviendrai dès que je l'aurai publié.

ATTENTION, pour tout enregistrement nettoyé avec ADM, bien couper sur les keyframes où l'on voit la première et la dernière image de la section à garder, sinon on risque des plantages fatals au moment des commutations film/pub et penser à sauvegarder le projet en *.py.
A ce point de vue, la dernière version de FFmpeg me semble plus robuste maintenant, j'ai intégré les deux modes dans le BAT dont je n'ai plus qu'à rédiger un simple petit mode d'emploi pour le publier en version beta.


Anonymous a écrit:
Djeipi a écrit:MISE A JOUR

Hello :)

Voici une première conclusion à mes errements des pages précédentes.


Bonsoir
Merci en tous cas ,j'ai pas testé, pour ta contribution a ce sujet.


Ne te hâte pas de tester, je vais tout virer et remplacer par un truc plus clair non morcelé
Djeipi
Coccinelle
Coccinelle
 
Messages: 112
Inscription: 07 Déc 2015 23:07

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar Djeipi » 06 Jan 2017 18:02

MISE A JOUR du 2 février 2017

NOUVEAU La version 9.8.0 de MKVToolnix intègre désormais l'extraction des sous-titres DVBsub

Hello :)

Voici une V2.0 "alpha" en BAT :
Du code de bleusaille, pas très propre, plus ou moins auto-documenté et interactif, monté petit à petit à partir de (beaucoup de) recherches sur le net sur l'art du "batch" et de la ligne de commandes.
Il est (assez ?) facilement personnalisable en fonction des desiderata de chacun, j'ai laissé volontairement quelques "pause"(s) supprimables sans dommages pour suivre l'évolution du traitement. J'ai encore du mal à gérer proprement les affichages avec "echo", mais ça n'empêche pas le bazar de tourner.
La V2 se distingue de la V1 par l'adjonction d'une usine à gaz (entre "call" et"reprise") qui transforme les segments nettoyés avec Avidemux récupérés dans le fichier*.py créé par la sauvegarde du projet (débuts et durées en microsecondes) en ligne de commandes pour scission au format utilisé par MKVToolnix (débuts et fins en "hh:mm:ss,cc" cc étant les 100èmes de secondes), tout en conservant la possibilité de report manuel de ces valeurs dans un fichier texte ou directement en cours d'exécution.
La V2 exploite aussi l'extraction et le remultiplexage directs des sous-titres "DVBsub" par MKVToolnix mais en conservant la possibilité de les redimensionner et repositionner ainsi que d'en créer une version SRT.
Le choix des modalités d'exploitation et de nettoyage des divers flux avec Avidemux, MKVToolNix et FFmpeg est offert en coutr d'exécution pour pallier à certains problèmess liés aux erreurs de transmission ou de cogdage mieux traités selon les cas par l'un ou par l'autre de ces logiciels

RAPPEL :

Ici, 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 en principe pas de problèmes.

Si l'on désire sans se prendre la tête une vidéo personnalisable à tous points de vue mais figée, le logicie gratuit "Freemake Video Converter", bien que plutôt poussif pour la recherche des parties à nettoyer, reste le plus convivial.
Attention cependant à l'installation de décliner tous les parasites proposés !


Sinon, pour le cas où l'utilisation initiale de l'excellent programme "VidePub" ne permettrait pas de satisfaire les besoins spécifiques du/des lecteur(s) externe(s) de l'utilisateur, j'ai cherché à automatiser au maximum par un fichier BAT les opérations sous Windows et ceci en n'utilisant que des logiciels gratuits (ça doit pouvoir s'adapter à Linux) pour obtenir un fichier MKV facilement re-personnalisable en final, aussi passe-partout que possible, traité en un minimum de temps et sans pertes de qualité, par copie des composantes Vidéo, Audio, Sous-titres, et faculté de transcodage Audio pour certains lecteurs qui ne digèrent pas l'AC3 (majoritaire en TNT-HD) ou l'AAC (replays, YouTube, etc) et retraitement des sous-titres.
Les liens vers ces logiciels sont indiqués ci-dessous, on trouvera aussi d'autres logiciels et quelques commentaires en p.4 du fil.

Pour commencer, il faut se créer un répertoire de travail, chez moi c'est "D:\Filmatraiter\Encours\" dans lequel on laissera à demeure un certain nombre d'outils, le fichier BAT "ToutAuto_v*.bat" et où l'on copiera (pour y garder l'original en secours) depuis la clé USB le fichier "*.mts" à traiter.
Une fois le MKV final obtenu, on supprimera tout le contenu ajouté dans le répertoire avec sauvegarde éventuelle dans un répertoire dédié au film toutes les composantes utiles pour un repersonnalisation éventuelle du MKV, y compris redimensionnement, réencodage, burinage des sous-titres, changement de conteneur, etc.

Petit glossaire à propos des sous-titres :

- dvbsub : Codage original des sous-titres sous forme d'images genre BMP, avec couleurs et position variables utilisé dans les flux DVB(-T et -S).
On les trouve sous-forme classique (comme au cinéma, mais avec un peu de mise en page) et/ou pour malentendants avec commentaires annexes concernant les sons du film.

En général, ils ne peuvent être exploités par l'utilisateur qu'avec l'appareil qui a enregistré le flux "brut" ou les lecteurs informatiques (VLC, MPC-HC, SMplayer, etc). On peut cependant extraire facilement ces fichiers et les multiplexer ("soft") en MKV, c'est une option que je n'ai pas implémentée car elle peut poser des problèmes avec certains lecteurs externes.

- vobsub : Egalement codés sous forme d'images, rendu visuel identique au dvbsub. Obtenu par transcodage du dvbsub, le vobsub me semble plus largement accepté par les lecteurs externes. Il nécessite toutefois une reprise de la mise en page (plus ou moins automatique). Le codage se fait par paires *.idx et *.sub, multiplexables ("soft") en MKV et certains autres conteneurs.

- SRT : Fichiers "texte" éditables de rendu traditionnel (films "VOST" au cinéma...), d'aspect éventuellement modifiable selon les goûts. Ils sont obtenus par reconnaissance optique du dvbsub ou du vobsub et multiplexables en MKV et autres conteneurs.
On peut aussi trouver pour les films ces fichiers SRT sur le net, mais il, faudra les resynchroniser, opération relativement avec "Subtitle Edit" et ses confrères.

La plupart des logiciels d'édition vidéo peuvent buriner définitivement ("hard") ces divers formats dans la vidéo, moyennant un réencodage de celle-ci.


LES OUTILS :

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

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

# Son complémentaire :
FFmpeg Version actuelle 3.2.2
A dézipper, puis il suffit de 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
Il nécessite que Java soit installé
Celui-ci peut aussi fonctionner en ligne de commande
Dézipper puis copier "BDSup2Sub512.jar" dans la boîte à outils.

# Pour transcoder les sous-titres en SRT :
Subtitle Edit Version actuelle 3.5.1
Dézipper la version portable et copier le dossier "SE351" lui-même dans la boîte à outils.
Lancer une1ère fois "SubtitleEdit.exe"
Menu "Options" > Choisir la langue > français
Menu "Orthographe" > télécharger Dictionnaires > français

# Pour finaliser et personnaliser :
MKVToolNix Version actuelle 9.7.1
Dézipper la version portable "*.7z"
Il suffit ici de copier dans la boîte à outils les exécutables :
"mkvextract.exe"
"mkvmerge.exe"
"mkvtoolnix-gui.exe"
Pour avoir le GUI en français et éventuellement utiliser d'autres possibilités de MKVToolNix, compléter la copie avec les autres fichiers et sous-répertoires de la distribution

# Pour vérifier en lecture les traitements :
MPC-HC
Bien d'autres conviennent : VLC, SMplayer, etc..., mais j'ai retenu MPC-HC pour l'utiliser en ligne de commandes.
Choisir la version installable de MPC-HC, l'installer avec les paramètres par défaut, sinon éditer son chemin d'accès dans le BAT (à faire impérativement si l'on veut utiliser un autre lecteur).

# IMPORTANT : Il est impératif d'ajouter la commande Windows "Paste" qui n'existe pas en standard.
Pour cela dézipper
http://www.c3scripts.com/tutorials/msdos/paste.zip
et coller le fichier "paste.exe" dans C:\Windows\

PRELIMINAIRES :

# Il faut modifier les options par défaut d'Avidemux ainsi :
- Lancer le GUI d'Avidemux
- Format de sortie : Choisir MKV muxer
- Configurer : cocher "Force display width", choisir "1920" (pour gérer les chaînes qui diffusent en 1440x1080), OK
- Menu "Editer" > Sauver les réglages courants comme défaut.

# Copier en passant par un éditeur de texte comme "Notepad++" dans la boîte à outils les deux fichiers suivants avec l'extension ".py" :

"brut.py"
Code: Tout sélectionner
#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()
adm.videoCodec("Copy")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"fra")
adm.setSourceTrackLanguage(1,"qaa")
adm.setSourceTrackLanguage(2,"qad")
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.audioAddTrack(2)
adm.audioCodec(2, "copy");
adm.audioSetDrc(2, 0)
adm.audioSetShift(2, 0,0)
adm.setContainer("MKV", "forceDisplayWidth=True", "displayWidth=1920")


"brut_adm_AAC.py"
Code: Tout sélectionner
#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()
adm.videoCodec("Copy")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"fra")
adm.setSourceTrackLanguage(1,"und")
adm.setSourceTrackLanguage(2,"und")
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.audioAddTrack(2)
adm.audioCodec(2, "FDK_AAC");
adm.audioSetDrc(2, 0)
adm.audioSetShift(2, 0,0)
adm.setContainer("MKV", "forceDisplayWidth=True", "displayWidth=1920")



Ce sont des enregistrements de projets Avidemux, personnalisables éventuellement par les utilisateurs d'Avidemux de préférence depuis le GUI d'Avidemux.
Ils correspondent ici aux choix des traitements de base des diverses pistes audio, mais peuvent faire bien plus.
Pour ceux qui voudraient les créer depuis Avidemux, ce qui serait la façon normale, il faut charger n'importe quelle vidéo typique "*.mts" (avec plusieurs pistes audio), choisie courte pour une indexation rapide, paramétrer les réglages personnalisés et sauver le projet en *.py.
Ensuite, avec l'éditeur supprimer ces 5 lignes:

Code: Tout sélectionner
adm.loadVideo("D:/Filmatraiter/Encours/*.mts")
adm.clearSegments()
adm.addSegment(0, 0, nnnnn000)
adm.markerA = 0
adm.markerB = nnnnnn000


Et ne pas oublier "ToutAuto_v21.bat" :

ATTENTION : utiliser à titre expérimental, en cours de tests, il y a quelques pauses excédentaires

Code: Tout sélectionner


@echo Methode de recherche des points de coupe avec  :   1 = Avidemux    0 = Autres
@echo Autres (par exemple "VidePub"  ou lecteurs PC) est plus rapide quand il n'y a pas de pubs pour reperer "Debut" et "Fin"
@echo mais Avidemux est plus performant pour balayer le film une fois l'indexation terminee et plus propre si coupes aux "keyframes" 

set MethodeRecherche=0
set /p MethodeRecherche=
echo off
echo.
@echo retenu %MethodeRecherche%
echo.
echo.

::echo off
if "%MethodeRecherche%"=="0" goto :ModeTraitement

@echo Indexation, patienter plusieurs minutes ou plus la premiere fois, mais incontournable pour l'usage d'Avidemux

"C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe" --load brut.mts --autoindex --quit
echo.
echo.
echo.
@echo Nettoyer le fichier "brut.mts" avec Avidemux (ADM) selon  Edition Effacer) avec curseur, molette, fleches G, D  et H, B
@echo pour les "keyframes"
@echo @echo
@echo Pour continuer et finir le travail avec le GUI d'Avidemux plutot qu'avec le BAT,
@echo ne pas le fermer, le CONFIGURER selon ses desirs et sauver le fichier nettoye
@echo ATTENTION, dans ce cas, ABSENCE DES SOUS-TITRES dans le fichier sauve !
@echo Dans tous les cas SAUVER le PROJET en "nett_ADM.py" puis (pour le plan B) le film nettoye et configure en "nettADM.mkv"
@echo Fermer le GUI
@echo NOTA : Si le message "...too short" s'affiche en fin de sauvegarde avec le GUI, fermer le GUI.
@echo Le fichier d'index "brut.mts.idx2" reste valable ainsi que le "segments.txt"
@echo Effacer le fichier *.mkv resultant, relancer le BAT avec "Mode" = 0 et "Recherche coupes" = "Autres" = 0
@echo ATTENDRE svp
echo off
echo.
echo.
echo.

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

:ModeTraitement
@echo Mode de traitement
@echo  Mode 0 = FFmpeg (plus rapide mais parfois pb de synchronisation A/V/ST, a confirmer)
@echo  Mode 1 = Avidemux (plus lent, synchro meilleure a confirmer,
@echo   mais plante parfois en traitement du "brut.mts" aux commutations de pub
@echo  En principe, choisir le mode 1, il y aura repli automatique vers le mode 0 en cas de detection de plantage
echo on
set Mode=1
set /p Mode=
echo.
@echo retenu %Mode%
echo.
echo.

:ChoixSousTitres
@echo Choix sous-titres SUB   : 0 = non   1 = oui
set SousTitresSUB=1
set /p SousTitresSUB=
echo off

echo.
@echo retenu %SousTitresSUB%
echo.
echo.


@echo Choix sous-titres SRT   : 0 = non   1 = oui
echo on
set SousTitresSRT=0
set /p SousTitresSRT=
echo.
@echo retenu %SousTitresSRT%
echo off
echo.
echo.

echo off
if "%SousTitresSUB%"=="0" goto :segments
if "%SousTitresSUB%"=="1" goto :iniCAR
if "%SousTitresSRT%"=="0" goto :segments
if "%SousTitresSRT%"=="1" goto :segments

:iniCAR
set car=0.5,0.5
set format=1.8,50

:ReCorr
@echo Redimensionnement de la taille des caracteres des sous-titres : Coeffs largeur et hauteur
@echo actuel %car%  modifiable
echo on
set /p car=
echo.
@echo retenu %car%
echo.
echo.

@echo Repositionnement des sous-titres : Format du film L/H, decalage vers le haut
@echo actuel %format%  modifiable
set /p format=
echo.
@echo retenu %format%
echo.
echo.

@echo Choix controle des sous-titres  : 0 = non   1 = oui
set Controle=1
set /p Controle=
echo off
echo.
@echo retenu %Controle%
echo.
echo.

:segments
echo off
if exist "nett_ADM.py" goto :call
@echo segments selon le fichier "segments.txt"
if exist "segments.txt" goto :copie _fichier
echo on
set/p segments=
goto :ChoixDecTN_ADM
:copie _fichier
echo on
@set/p segments=<segments.txt
echo.
@echo %segments%
::pause
echo.

goto :ChoixDecTN_ADM

echo off
:call
echo off
:: Récupération des n segments dans  nett_ADM.py  début et durée en microsecondes, ", et ")" parasites à la fin
if exist "segs.txt" del "segs.txt
FINDSTR "addSegment(" nett_ADM.py | clip
paste >segs.txt
if exist "segs1.txt" del "segs1.txt
for /f "tokens=1,2,3" %%A in ('findstr /rc:"adm.addSegment" segs.txt') do (
echo %%B% >> "segs1.txt"
echo %%C% >> "segs1.txt"
)

if exist "segsnet.txt" del "segsnet.txt"
if exist "cuthmsc.txt" del cuthmsc.txt"
:nett
type nul > cuthmsc.txt

:boucle

::Nettoyage points de coupe "cut" des débuts
set /p cutmus=<"segs1.txt"
@echo %cutmus%
:: Nettoyage de "0000," ou "0000)" résultat en cs
set cutcs=%cutmus:~0,-6%
@echo %cutcs%
set cutcsdeb=%cutcs%

:: Conversion HH:MM:SS.cc (format MKVToolNix) desv débuts de segments

if %cutcs% GEQ 100 goto :cutnonzero
set cutcs=100
:cutnonzero
set /a hours=(%cutcs%/360000)
@echo %hours%
set /a minutes=(%cutcs%/6000)-(hours*60)
@echo %minutes%
set /a seconds=(%cutcs%-(%minutes%*6000)-(%hours%*360000))/100
@echo %seconds%
set /a csecs=(%cutcs%-(%seconds%*100)-(%minutes%*6000)-(%hours%*360000))
@echo %csecs%

set hh=0
set mm=0
set ss=0
set cc=0

:hh
if  %hours% GEQ 10 goto :hhok
if  "%hours%"=="0" goto :hh00
set ohours=0%hours%

set hh=%ohours%
@echo %hh%
goto :mm
:hh00
set hh=00
@echo %hh%
goto :mm
:hhok
set hh=%hours%

:mm
if  %minutes% GEQ 10 goto :mmok
if  %minutes% EQU 0 goto :mm00
set ominutes="0%minutes%"
set ominutes1=%ominutes:~1,-1%

set mm=%ominutes1%
@echo %mm%
goto :ss
:mm00
set mm=00
@echo %mm%
goto :ss
:mmok
set mm=%minutes%
set mm1=%minutes:~0,-1%

:ss
if  %seconds% GEQ 10 goto :ssok
if  "%seconds%"=="0" goto :ss00
set oseconds=0%seconds%

set ss=%oseconds%
@echo %ss%
goto :cc
:ss00
set ss="00"
@echo %ss%
goto :cc
:ssok
set ss=%seconds%

:cc

if  %csecs% GEQ 10  goto :ccok
if  "%csecs%"=="0" goto :cc00

set ocsecs="0%csecs%"
set ocsecs_=%ocsecs:~1,-1%
set cc=%ocsecs_%
@echo %cc%
goto :hmsc
:cc00
set cc=00
@echo %cc%
goto :hmsc
:ccok
set cc=%csecs%

:hmsc
set cc=%cc: =%

@echo %hh%:%mm%:%ss%.%cc%
:: stockage deb
set "filemask=cuthmsc.txt"
for %%A in (%filemask%) do if %%~zA==0 goto :tour1
@set /p avant=<cuthmsc.txt
echo %avant%,+%hh%:%mm%:%ss%.%cc%->cuthmsc.txt
goto :more
:tour1
echo %hh%:%mm%:%ss%.%cc%->cuthmsc.txt
goto :more
:more
more +1 segs1.txt > segstemp.txt
del "segs1.txt"
ren "segstemp.txt" "segs1.txt

:: Phase durée, nettoyage et calcul des points de coupe "cut" des fins de segments
set /p cutmus=<"segs1.txt"
@echo %cutmus%
:: Nettoyage de "0000," ou "0000)" résultat en cs
set cutcs=%cutmus:~0,-6%
@echo %cutcs%
set /a cutcsfin=%cutcsdeb%+%cutcs%
:: @echo %cutcsfin%
set cutcs=%cutcsfin%
@echo %cutcs%

:: Conversion HH:MM:SS,cc (format MKVToolNix) des  fins de segments

set /a hours=(%cutcs%/360000)
@echo %hours%
set /a minutes=(%cutcs%/6000)-(hours*60)
@echo %minutes%
set /a seconds=(%cutcs%-(%minutes%*6000)-(%hours%*360000))/100
@echo %seconds%
set /a csecs=(%cutcs%-(%seconds%*100)-(%minutes%*6000)-(%hours%*360000))
@echo %csecs%


set hh=0
set mm=0
set ss=0
set cc=0


:hhF
if %hours% GEQ 10 goto :hhokF
if "%hours%"=="0" goto :hh00F
set ohours=0%hours%
set hh=%ohours%
@echo %hh%
goto :mmF
:hh00F
set hh=00
@echo %hh%
goto :mmF
:hhokF
set hh=%hours%

:mmF
if  %minutes% GEQ 10 goto :mmokF
if  "%minutes%"=="0" echo goto :mm00F
set ominutes="0%minutes%"
set ominutes1=%ominutes:~1,-1%
set mm=%ominutes1%
@echo %mm%
goto :ssF
:mm00F
set mm=00
@echo %mm%
goto :ssF
:mmokF
set mm=%minutes%
set mm1=%mm:~0,-1%
set mm=%mm1%

:ssF
if  %seconds% GEQ 10 goto :ssokF
if  %seconds% EQU 0 goto :ss00F
set oseconds=0%seconds%
set ss=%oseconds%
@echo %ss%
goto :ccF
:ss00F
set ss="00"
@echo %ss%
goto :ccF
:ssokF
set ss=%seconds%

:ccF

if %csecs% GEQ 10  goto :ccokF
if "%csecs%" EQU 0 goto :cc00F

set ocsecs="0%csecs%"
set ocsecs_=%ocsecs:~1,-1%
set cc=%ocsecs_%
@echo %cc%
goto :hmscF
:cc00F
set cc=00
@echo %cc%
goto :hmscF
:ccokF
set cc=%csecs%

:hmscF
set cc=%cc: =%

@echo %hh%:%mm%:%ss%.%cc%
:: stockage fin
@set /p avant=<cuthmsc.txt
echo %avant%%hh%:%mm%:%ss%.%cc%>cuthmsc.txt
more +1 segs1.txt > segstemp.txt
del "segs1.txt"
ren "segstemp.txt" "segs1.txt

:: test si fini
set "filemask=segs1.txt"
for %%A in (%filemask%) do if %%~zA==0 goto :fini

goto :boucle
:fini

:reprise

copy "cuthmsc.txt" "segments.txt"
@set /p segments=<segments.txt

goto :ChoixDecTN_ADM

:ChoixDecTN_ADM

echo off
echo.
echo.
@echo Decoupe avec MKVToolNix = 0     ADM = 1
echo on
set Decoupe=0
set /p Decoupe=
echo off
echo.
@echo retenu %Decoupe%
echo.
pause

echo off
if "%Decoupe%"=="1" goto :EXTRdvbSUB


:ChoixAudioAAC

@echo Conversion Audio en AAC  0 = non   1 =  oui
echo on
set AAC=1
set /p AAC=
echo.
@echo retenu %AAC%
echo.
echo.

:EXTRdvbSUB
echo off
if "%SousTitresSUB%"=="1" goto :EXTR
if "%SousTitresSRT%"=="1" goto :EXTR
goto :V_A
:EXTR
if exist "brutS.mkv" goto :existbrutSmkv

:: Extraction des dvbSUB  L'option -s LxH n'est pas utilisée volontairement, remplacement par BDSup java 
ffmpeg.exe -y -i "brut.mts" -vn -an -scodec dvdsub -vn -an -map 0 -ignore_unknown "brutS.mkv"

:existbrutSmkv

echo off
:: Nettoyage des anciens idx et sub
if exist "brutS1.idx" del "brutS1.idx"
if exist "brutS1.sub" del "brutS1.sub"
if exist "brutS2.idx" del "brutS2.idx"
if exist "brutS2.sub" del "brutS2.sub"
if exist "brutS.idx" del "brutS.idx"
if exist "brutS.sub" del "brutS.sub"
if exist "brutSr.idx" del "brutSr.idx"
if exist "brutSr.sub" del "brutSr.sub"
if exist "brut.idx" del "brut.idx"
if exist "brut.sub" del "brut.sub"
:SEP
:: Essai 2eme piste ST normaux
mkvextract tracks brutS.mkv  1:brutS2.srt
@echo %errorlevel%
::Si = 2 (absente)Alors Essai S1

echo off
if "%errorlevel%"=="2" goto :EssaiS1

:: Verif S2 non vide
set "filemask=brutS2.sub"
for %%A in (%filemask%) do if %%~zA==0 goto :S2vide

ren "brutS2.sub" "brutS.sub"
ren "brutS2.idx" "brutS.idx"
goto :RedimvobSUB
:S2vide

del "brutS2.sub"
del "brutS2.idx"

:EssaiS1
:: Essai 1ère piste ST malentendants
mkvextract tracks brutS.mkv  0:brutS1.srt
@echo %errorlevel%

echo off
::Si = 2 (absente)alors Pas de ST
if "%errorlevel%"=="2" goto :PasdeST

:: Verif S1 non vide
set "filemask=brutS1.sub"
for %%A in (%filemask%) do if %%~zA==0 goto :PasdeST

ren "brutS1.sub" "brutS.sub"
ren "brutS1.idx" "brutS.idx"

:RedimvobSUB

java -jar BDSup2Sub512.jar -r 1080 -d 0000 -S %car% -l fr -I %format% -X left 160 -F set -o brutSr.idx brutS.idx

ren "brutSr.idx" "brut.idx"
ren "brutSr.sub" "brut.sub"
:: Contrôle
if "%Controle%"=="0" goto :SRT

@echo Appel MPC-HC  selon Menu Lecture  Sous-titres   english  (bogue dans le Java) ATTENDRE

"C:\Program Files\MPC-HC\mpc-hc64.exe" "D:\Filmatraiter\Encours\brut.mts" /play
pause
echo on
@echo Validation sous-titrage  0 = non   1 =  oui
set STok=1
set /p STok=
echo.
@echo retenu %STok%
echo.
echo.
echo off
if "%STok%"=="0" goto :ReCorr

goto :SRT

:PasdeST
set SousTitresSUB=0
set SousTitresSRT=0
goto : V_A
:SRT
echo off

if "%SousTitresSRT%"=="1" goto :OCR
if "%SousTitresSRT%"=="0" goto :V_A
if "%SousTitresSUB%"=="1" goto :V_A

:: OCR  sur piste vobsub non vide non redimensionnée ;   brutS2.*  sinon brutS1.*
:OCR

echo off
if exist "brutS.srt" goto :V_A

del D:\Filmatraiter\Encours\SE351\brutS.sub
del D:\Filmatraiter\Encours\SE351\brutS.idx
copy brutS.sub D:\Filmatraiter\Encours\SE351\brutS.sub
copy brutS.idx D:\Filmatraiter\Encours\SE351\brutS.idx
cd D:\Filmatraiter\Encours\SE351\
@echo ATTENDRE svp, une bonne dizaine de minutes
SubtitleEdit/convert brutS.sub subrip
move brutS.srt D:\Filmatraiter\Encours\brutS.srt
cd D:\Filmatraiter\Encours\


:V_A

echo off
if "%DecoupeADM%"=="1" goto :PlanB
if "%Mode%"=="0" goto :AAC_FFmpeg

:: brutMKVadm  Conversion  en MKV avec copies directes vidéo et audio :
if exist "brut.mkv" goto :ADMok
set avidemux="C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe"
for %%f in (brut.mts) do %avidemux% --load "%%f" --run "brut.py" --save "%%f.mkv" --quit
ren "brut.mts.mkv" "brut.mkv"
:: Test erreur ADM
@echo %errorlevel%
::pause

echo off
if "%errorlevel%"=="0" goto :ADMok

:ErreurADM
del "brut.mkv"
set Mode=0
goto :AAC_FFmpeg

:ADMok

::  Conversion  en MKV avec copie vidéo et conversion audio en AAC:

echo off
if exist "brutAv.mkv" goto :MUX

if "%AAC%"=="0" goto :MUX
if "%AAC%"=="1" goto :ADM_Audio

:ADM_Audio
set avidemux="C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe"
for %%f in (brut.mts) do %avidemux% --load "%%f" --run "brut_adm_AAC.py" --save "%%f.mkv" --quit
ren "brut.mts.mkv" "brutAv.mkv"
:: Test erreur ADM
::@echo %errorlevel%
::pause

echo off
if "%errorlevel%"== "0" goto :MUX
goto :ErreurADM_A

:AAC_FFmpeg

echo off
if exist "brutA.mkv" goto MUX

if "%AAC%"=="0" goto :MUX
if "%AAC%"=="1" goto :Audio

:Audio
ffmpeg -i "brut.mts" -map 0:1 -map 0:2 -map 0:3 -c:a aac -b:a 128k "brutA.mkv"

:MUX
:: MKVmerge selon les 16 combinaisons : ADM AAC SUB SRT, rappel pour contrôle.
echo on
@echo segments=%segments%
@echo Mode=%Mode%
@echo Audio=%AAC%
@echo SUB=%SousTitresSUB%
@echo SRT=%SousTitresSRT%
:MUXpar
set /a MUXpar=1000*%Mode%+100*%AAC%+10*%SousTitresSUB%+%SousTitresSRT%
echo Mux final %MUXpar%
pause

goto :%MUXpar%

::FFmpeg
:0
mkvmerge.exe --output "nett_0000.mkv" "brut.mts" --split "parts:%segments%"
goto :Validation
:1
mkvmerge.exe --output "nett_0001.mkv" "brut.mts" "brutS.srt" --split "parts:%segments%"
goto :Validation
:10
mkvmerge.exe --output "nett_0010.mkv" "brut.mts" "brut.idx" --split "parts:%segments%"
goto :Validation
:11
mkvmerge.exe --output "nett_0011.mkv" "brut.mts" "brut.idx" "brutS.srt" --split "parts:%segments%"
goto :Validation

::FFmpeg_AAC_AAC
:100
mkvmerge.exe --output "nett_0100.mkv" "brut.mts" --no-video "brutA.mkv" --split "parts:%segments%"
goto :Validation
:101
mkvmerge.exe --output "nett_0101.mkv" "brut.mts" --no-video "brutA.mkv" "brutS.srt" --split "parts:%segments%"
goto :Validation
:110
mkvmerge.exe --output "nett_0110.mkv" "brut.mts" --no-video "brutA.mkv" "brut.idx"  --split "parts:%segments%"
goto :Validation
:111
mkvmerge.exe --output "nett_0111.mkv" "brut.mts" --no-video "brutA.mkv" "brut.idx" "brutS.srt" --split "parts:%segments%"
goto :Validation

::ADM
:1000
mkvmerge.exe --output "nett_1000.mkv" "brut.mkv" --split "parts:%segments%"
goto :Validation_ADM
:1001
mkvmerge.exe --output "nett_1001.mkv" "brut.mkv" "brutS.srt" --split "parts:%segments%"
goto :Validation_ADM
:1010
mkvmerge.exe --output "nett_1010.mkv" "brut.mkv" "brut.idx" --split "parts:%segments%"
goto :Validation_ADM
:1011
mkvmerge.exe --output "nett_1011.mkv" "brut.mkv" "brut.idx" "brutS.srt" --split "parts:%segments%"
goto :Validation_ADM

::ADM_AAC
:1100
mkvmerge.exe --output "nett_1100.mkv" "brut.mkv" --no-video "brutAv.mkv" --split "parts:%segments%"
goto :Validation_ADM
:1101
mkvmerge.exe --output "nett_1101.mkv" "brut.mkv" --no-video "brutAv.mkv" "brutS.srt" --split "parts:%segments%"
goto :Validation_ADM
:1110
mkvmerge.exe --output "nett_1110.mkv" "brut.mkv" --no-video "brutAv.mkv" "brut.idx"  --split "parts:%segments%"
goto :Validation_ADM
:1111
mkvmerge.exe --output "nett_1111.mkv" "brut.mkv" --no-video "brutAv.mkv" "brut.idx" "brutS.srt" --split "parts:%segments%"
goto :Validation_ADM

:Validation_ADM
@echo En principe c'est tout bon et fait avec Avidemux
pause
exit

:Validation
@echo Fichier satisfaisant 1 = oui  0 = non
set OK=1
set /p OK=
echo off
if "%OK%" == "1" exit

:PlanB
:: Suppose au moins que la sauvegarde du projet ADM avec nettoyage "nett_ADM.py" a été faite avec le GUI en son temps.
:: Alors, V et A  seront nettoyés par ADM pour supprimer les commuts de pub, en ligne de commande si pas déjà fait avec le GUI
:: et SUB et SRT seront nettoyés par FFmpeg avec %segments%, puis mux final V + A + S avec MKVToolNix sans %segments%

:: Découpe ADM et Conversion en MKV avec copies directes vidéo et copie ou conversion audio selon configuration ADM :

echo off
if exist "nettADM.mkv" goto :MUXpar
set avidemux="C:\Program Files\Avidemux 2.6 - 64 bits\avidemux_cli.exe"
for %%f in (brutnettADM.mkv.mts) do %avidemux% --load "%%f" --run "nett_ADM.py" --save "%%f.mkv" --quit

pause


ren "brutnettADM.mkv.mts.mkv" "nettADM.mkv"
:: Test erreur ADM
@echo %errorlevel%
::pause

echo off
if "%errorlevel%"=="0" goto :MUXpar

@echo Traitement_correct_impossible
pause
exit

:: nettoyage ST

:MUXpar
set /a muxST=10*%SousTitresSUB%+%SousTitresSRT%+2

@echo %muxST%
::pause
goto :%muxST%

:2

pause
exit
:3
mkvmerge.exe  --output "brutx_subsrt.mkv" --no-audio "brut.mts" "brutS.srt" --split parts:"%segments%"
::pause

goto :remux
:12
mkvmerge.exe  --output "brutx_subsrt.mkv" --no-audio "brut.mts" "brut.idx" --split parts:"%segments%"
::pause
goto :remux
:13

mkvmerge.exe  --output "brutx_subsrt.mkv" --no-audio "brut.mts" "brut.idx" "brutS.srt" --split parts:"%segments%"
::pause

:remux
mkvmerge.exe  --output "nettADMst.mkv" "nettADM.mkv" --no-video "brutx_subsrt.mkv"
pause
exit



TRAITEMENT

A.
Visionner le *.mts de la clé avec MPC-HC pour vérifier langues et sous-titres et décider de ce que l'on veut conserver en matière de langues et sous-titres. Utiliser les menus "Fichier" > "Propriétés" > Media info et "Lecture"
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.

B.
- Détruire (ou les déplacer dans un autre répertoire) tous les fichiers créés lors de la session antérieure
- Copier le fichier *.mts depuis la clé dans le dossier de travail dédié où l'on a mis les outils et les raccourcis
- Le renommer "brut.mts"
- Avant de lancer "ToutAuto_v20.bat" (c'est un truc de bleusaille, merci pour les suggestions d'améliorations), savoir que:

Le nettoyage utilise le fichier texte "segments.txt" contenant une ligne avec les sections selon le format MKVToolNix :.
hh:mm:ss.nnn-hh:mm:ss.nnn,+hh:mm:ss.nnn-hh:mm:ss.nnn,+....
Celui-ci peut-être créé en cours de route automatiquement avec Avidemux ou manuellement, alors après repérage à l'avance de différentes manières au choix (VidePub, MPC-HC, etc.) et formattage.

Le début du programme est interactif, à chaque étape, un choix est proposé par défaut, validé par "Enter" ou à modifier par la valeur désirée puis "Enter".
On a un certain droit au remord pour les modifications de paramètres, mais les fichiers déjà créés étant conservés, on gagne du temps pour les options modifiées quand on repart au début.
Les choix sont sommairement documentés.
Le redimensionnement des sous titres dépend des chaînes, j'y reviendrai : soit 0.5,0.5 soit 1,1
Déjà, en principe :
TF1 TMC F4 NT1 Chérie "-S 0.5,0.5"
F2 F3 C8 6ter Arte "-S 1,1"
Le repositionnement dépend du format de présentation du film. En "Cinemascope", choisir normalement 2.4, mais avec 1.8, les sous-titres sont sous l'image, ça peut être mieux si le lecteur l'accepte. Avec le format 1.8 (16:9), un offset de 40 peut-être utile : 1.8,40.
D'ailleurs cette affaire de sous-titres est pour moi une bouteille à encre, la présentation dépend du lecteur, j'ai donc implémenté un contrôle visuel par MPC-HC, dont il convient d'éditer le chemin d'installation dans le BAT et ensuite de le préconfigurer ainsi, après qu'il ait ouvert "brut.mts" :
Menu "Lecture" > Piste de sous-titres > Options > Divers : Cocher les deux premières cases "Préférer ..."
En tout état de cause, au coup par coup :
Menu "Lecture" > Piste de sous-titres > "English" ("English" à cause d'une bogue dans le BDsup2Sub...)
Si le résultat ne plaît pas, on peut reboucler sur les paramètres, l'exécution du "Java" dure peu de temps.
Il conviendra de se noter à l'usage à part personnellement pour ses lecteurs les réglages qui vont bien. par chaîne et selon le format du film.
Les traitements "longs" (ne pas s'inquiéter quand le contenu de la fenêtre n'évolue pas) sont l'indexation Avidemux, en général quelques minutes, parfois peu de dizaines, les transcodages Audio et surtout la création du SRT quand demandés (quelques dizaines de minutes sur un PC portable basique).
A la fin, une validation du fichier final est demandée pour traiter d'une troisième manière avec le GUI dans le cas où aucun des deux modes de traitement initiaux proposés ne donnerait un résultat correct. Un accès direct anticipé à ce 3ème mode est aussi possible.
Une fois obtenu le fichier nettoyé avec les options choisies, on peut vouloir encore lancer le GUI de MKVToolnix pour un re-multiplexage totalement personnalisé, avec pistes par défaut, forcées et d'éventuelles corrections de synchronisation entre autres.

Tous commentaires, observations, remarques, suggestions et autres retours sont bienvenus, merci :)
Djeipi
Coccinelle
Coccinelle
 
Messages: 112
Inscription: 07 Déc 2015 23:07

Re: Retravailler les enregistrements de vos décodeurs enregi

Messagepar pleiade67 » 01 Mai 2017 11:22

Bonjour,

je suis tombé récemment sur le logiciel suivant :
http://qtlmovie.sourceforge.net/doc/qtlmovie-intro_fr.html
qui permet entre autres de compresser très simplement des fichiers issus des décodeurs TNT (et de ma freebox revolution) en H264 / mp4 :
- sans décalage image / son
- en traitant tous les types de sous-titres (télétext / DVBsub), y compris sur les flux HD. Les subs sont par défaut intégrés dans la vidéo de sortie (il est aussi possible de récupérer des .srt au passage).
QTlmovie est construit sur FFmpeg et quelques autres (extraction des sub, etc.).
Testé et adopté sur les fichiers .TS de mon décodeur Etimo T2-REC (HEVC) y compris sur les chaîne allemandes HD en H265 (avec les sous-titres !) :shock:
ainsi que sur les fichiers .M2TS de ma freebox.
Je l'utilise conjointement avec avidemux, pour découper le fichier résultant (et éventuellement enlever les pubs).

Je cherchais ce type de logiciel depuis des années. Le développeur est très réactif et Qtlmovie est disponible sous PC, MacOS et linux ! 8)
Alsace, Réception TNT : DVB-T (France) et DVB-T2 HEVC (Allemagne)
Téléviseur : LG 55EG9A7V
Décodeurs : TNT: CGV Etimo T2-REC (HEVC), ADSL: Freebox Révolution
pleiade67
 
Messages: 4
Inscription: 30 Avr 2017 08:58