MKVMerge en ligne de commande > coller plusieurs fichiers TS

MKVMerge en ligne de commande > coller plusieurs fichiers TS - Traitement Vidéo - Video & Son

Marsh Posté le 21-09-2016 à 23:06:54    

Bonjour,

 

Avec MKVmerge , j'aimerais automatisé en ligne de commande la création d'un MKV à partir de plusieurs fichiers d'enregistrement TNT (ce sont des fichiers TS scindés en 1 Go d'une durée d'environ 27 minutes chacun).
Cela irait plus vite que de le faire à partir de l'interface de MKVmerge...

 

J'ai tapé ceci comme ligne de commande => mkvmerge.exe 000.ts 001.ts -o --link d:\test.mkv
Cela me fait bien un fichier test.mkv mais le problème c'est que cela me crée plusieurs pistes vidéo dans le MKV mais je voudrais une seule piste vidéo "collé" qui soit à suivre qui serait donc d'une durée d'environ 54 minutes (2x27minutes)

 

Voici un dossier type d'enregistrement TNT:
000.dvr
000.ts
001.dvr
001.ts
info3.dvr

 

Voyez vous quel est la ligne de commande à mettre pour "coller" la piste 001.ts à la piste 000.ts dans le MKV ?

 

merci ;)


Message édité par Space le 21-09-2016 à 23:07:28

---------------
Ma cinémathèque
Reply

Marsh Posté le 21-09-2016 à 23:06:54   

Reply

Marsh Posté le 23-09-2016 à 21:47:15    

Ce serait pas plus simple de faire ça avec TSMuxer, puis d'en faire un mkv s'il faut ? Il faut aussi préciser que c'est de l'entrelacé ; dans la GUI de MKVToolnix, il y a une différence entre 25p et 50i.
Sinon il y a moyen avec ffmpeg, il faut créer un fichier txt contenant les adresses des vidéos puis l'utiliser de cette manière ;
https://trac.ffmpeg.org/wiki/Concatenate
 
Pour MKVmerge il suffit de mettre un + entre les fichiers ;

Code :
  1. mkvmerge -o full.mkv file1.mkv + file2.mkv


 
https://linux.die.net/man/1/mkvmerge


Message édité par arnuche le 23-09-2016 à 22:20:26
Reply

Marsh Posté le 24-09-2016 à 13:25:11    

Il me faut obligatoirement du mkv , mon lecteur multimedia lit tous les formats audio (DTS,AAC,Dolby,etc.) sauf les fichiers DD+ (EAC3) lorsqu'ils sont au format TS (cela passe en revanche lorsqu'ils sont en MKV).
 
oui impec en effet c'est la commande "+" pour faire cette manip  :jap:
 
Par contre je ne peux pas faire une commande automatisée générique, je m'explique:
J'ai des dossiers d'enregistrement qui vont avoir par exemple 7 fichiers TS et d'autres qui en auront moins (3 ou 4 par exemple).
Si je fais une commande pour un dossier contenant 7 fichiers TS , cela donnera donc:
mkvmerge -o full.mkv 000.ts + 001.ts + 002.ts + 003.ts + 004.ts + 005.ts + 006.ts
 
Mais si je lance cette mème ligne de commande dans un dossier qui n'a que 3 fichiers TS , cela m'indique un message d'erreur dès le lancement:
error: the file 004.ts could not be opened    
 
Je n'ai pas trouvé de manip pour contourner ça dans ton lien en dessous...


---------------
Ma cinémathèque
Reply

Marsh Posté le 24-09-2016 à 15:43:31    

Space a écrit :

Il me faut obligatoirement du mkv , mon lecteur multimedia lit tous les formats audio (DTS,AAC,Dolby,etc.) sauf les fichiers DD+ (EAC3) lorsqu'ils sont au format TS (cela passe en revanche lorsqu'ils sont en MKV).


J'ai bien dit que tu pouvais le faire en 2 étapes, tout assembler en ts puis faire de ce gros ts un mkv. Evidemment ce serait mieux de tout faire en un script.
 
Pour le batch quel que soit le nombre de fichiers, il y a peut-être ce truc-là, à tester ;
http://stackoverflow.com/questions [...] sing-a-gui

Code :
  1. @echo off &setlocal enabledelayedexpansion
  2. cd /d "%sourcefolder%"
  3. set "line="
  4. for %%a in (*.mkv) do set line=!line! +"%%~a"
  5. mkvmerge -o "output.mkv" %line:~2%


 
sauf que tu remplaces bien sûr
in (*.mkv)
par
in (*.ts)
 
Tu peux t'inspirer de ça aussi ;
http://www.linuxquestions.org/ques [...] ost3782933

Code :
  1. #!/bin/bash
  2. for FIRST in ./*.cd1.mkv ; do
  3.    NAME=$(basename "$FIRST" .cd1.mkv)
  4.    REST=("./$NAME".cd[^1].mkv)
  5.    mkvmerge -o "$NAME.mkv" "$FIRST" "${REST[@]/#/+}"
  6. done


Message édité par arnuche le 24-09-2016 à 15:44:22
Reply

Marsh Posté le 24-09-2016 à 23:24:15    

c'est impec avec la manip ci-dessus :jap:


---------------
Ma cinémathèque
Reply

Marsh Posté le 25-09-2016 à 00:51:35    

Ah cool, j'ai pas testé, tu parles du 2ème ?
Tu as dû le modifier ?
Parce que cet exemple est fait pour quelqu'un qui a des fichiers qui se terminent par xxx.cd1.mkv, xxx.cd2.mkv ... mais si le 1er se termine par 000.ts, je ne sais pas ce qu'il faut mettre, peut-être ça ;
NAME=$(basename "$FIRST"00.mkv)
   REST=("./$NAME"[^00].mkv)

Reply

Marsh Posté le 25-09-2016 à 01:18:53    

non j'ai utilisé celui plus haut ;)
 

Code :
  1. @echo off &setlocal enabledelayedexpansion
  2. set "line="
  3. for %%a in (*.ts) do set line=!line! +"%%~a"
  4. mkvmerge -o "E:\VIDEO\VIDEO\_Autres\TV\fichier1.mkv" %line:~2%


---------------
Ma cinémathèque
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed