gestion des sous titre lors de la recompression avec ffmpeg

gestion des sous titre lors de la recompression avec ffmpeg - Traitement Vidéo - Video & Son

Marsh Posté le 02-03-2023 à 23:15:06    

bonsoir a toutes et tous.
 
je recompresse certains de mes fichiers en utilisant FFMPeg, l'idee c'est de recompresser la video et de recopier tel quel tous les autres flux incluant les soustitres.
 
voila un exemple de ligne de commande
 

.\ffmpeg.exe" -nostats -hwaccel cuda -i ".\toto.mkv" -n -c:v h264_nvenc -preset slow -crf 22 -c:a copy -c:s copy -map 0:v -map 0:a -map 0:s? ".\toto_recompressed.mkv"


 
ce que je souhaites c'est que les soustitres soient simplement recopiés avec leur proprietes.
 
ca marche si il y a un sous titre qui a la propriete "par defaut" deja configuré dans le fichier source.
 
mais si on fait ca sur un fichier qui un ou plusieurs sous titre (mais aucun avec la propriete "par defaut" ), le fichier en sortie aura le le premier sous titre avec la valeur "par defaut"
 
ce qui fait que si je lui met 22 episodes d'une saison avec les pistes audio FR/EN et 1 sous-titre FR pour etre afficher quand on regarde la piste EN mais par defaut non activé, j'ai les 22 episodes avec le sous titre d'activé.
 
si il y a un bon samaritain qui a une idee   :)  
 
ca me ferait gagner beaucoup de temps!
 
merci a toutes et tous
Bonne soiree
Tonic8

Reply

Marsh Posté le 02-03-2023 à 23:15:06   

Reply

Marsh Posté le 03-03-2023 à 08:48:25    

tonic8 a écrit :

bonsoir a toutes et tous.
 
je recompresse certains de mes fichiers en utilisant FFMPeg, l'idee c'est de recompresser la video et de recopier tel quel tous les autres flux incluant les soustitres.
 
voila un exemple de ligne de commande
 

.\ffmpeg.exe" -nostats -hwaccel cuda -i ".\toto.mkv" -n -c:v h264_nvenc -preset slow -crf 22 -c:a copy -c:s copy -map 0:v -map 0:a -map 0:s? ".\toto_recompressed.mkv"


 
ce que je souhaites c'est que les soustitres soient simplement recopiés avec leur proprietes.
 
ca marche si il y a un sous titre qui a la propriete "par defaut" deja configuré dans le fichier source.
 
mais si on fait ca sur un fichier qui un ou plusieurs sous titre (mais aucun avec la propriete "par defaut" ), le fichier en sortie aura le le premier sous titre avec la valeur "par defaut"
 
ce qui fait que si je lui met 22 episodes d'une saison avec les pistes audio FR/EN et 1 sous-titre FR pour etre afficher quand on regarde la piste EN mais par defaut non activé, j'ai les 22 episodes avec le sous titre d'activé.
 
si il y a un bon samaritain qui a une idee   :)  
 
ca me ferait gagner beaucoup de temps!
 
merci a toutes et tous
Bonne soiree
Tonic8


Bonjour,
Pour gérer les bandes sons et les sous-titres dans les mkv j'utilise MKVToolNix https://mkvtoolnix.download/

Reply

Marsh Posté le 03-03-2023 à 20:25:47    

nic020 a écrit :


Bonjour,
Pour gérer les bandes sons et les sous-titres dans les mkv j'utilise MKVToolNix https://mkvtoolnix.download/


 
Bonsoir,  
 
Merci, je connais ces outils, c'est ce que j'utilises pour corriger le pb remonté.  
 
Mais quand tu as 200 fichiers à modifier après les avoir recompressés, c'est quand même mieux de pas repasser derrière juste pour remettre le paramètre correctement (surtout si les fichiers en questions n'ont pas tous les meme sous-titres).
 
mais merci :)

Reply

Marsh Posté le 05-03-2023 à 22:36:02    

Essaye ceci ;

Code :
  1. -disposition:s none


ou ;

Code :
  1. -disposition:s:0 none


s = sous-titre, 0 = la première piste de s-t.
 
Astuce qui pourrait marcher quand il n'y a qu'une piste de s-t ;

Code :
  1. -disposition:s:1 default


Désigner une piste comme étant celle par défaut fait que les autres n'ont plus le flag "default" (d'après ce que j'ai lu sur un vieux topic, ce n'est peut-être plus vrai).
Et comme le flag "default" serait attribué à la piste 1 (qui désigne la 2ème piste de s-t, inexistante s'il n'y en a qu'une), la première (et seule dans ton cas) n'aurait donc pas le flag "default". Mais ce n'est qu'une hypothèse de ma part, avec FFMpeg il y a souvent plusieurs codes possibles pour le même résultat.
 
edit : j'ai testé avec une seule piste de srt, elle est toujours détectée comme "default" par Mediainfo.
Mais ceci a permis de désactiver le mode "default" ;

Code :
  1. -default_mode infer_no_subs


Testé avec VLC, la piste de s-t ne s'active pas mais on peut l'activer en cours de lecture.

Message cité 1 fois
Message édité par arnuche le 05-03-2023 à 23:40:34
Reply

Marsh Posté le 12-03-2023 à 22:24:54    

arnuche a écrit :


edit : j'ai testé avec une seule piste de srt, elle est toujours détectée comme "default" par Mediainfo.
Mais ceci a permis de désactiver le mode "default" ;

Code :
  1. -default_mode infer_no_subs


Testé avec VLC, la piste de s-t ne s'active pas mais on peut l'activer en cours de lecture.


 
 
bonsoir
 
je te confirmes ça marche!! , merci  :)  :bounce:
 
en cherchant le paramètre infer_no_subs dans la doc FFMpeg, il est "caché" dans la page format https://ffmpeg.org/ffmpeg-formats.html, mais c'est exactement ça.
 

default_mode
This option controls how the FlagDefault of the output tracks will be set. It influences which tracks players should play by default. The default mode is ‘passthrough’.
 
‘infer’
Every track with disposition default will have the FlagDefault set. Additionally, for each type of track (audio, video or subtitle), if no track with disposition default of this type exists, then the first track of this type will be marked as default (if existing). This ensures that the default flag is set in a sensible way even if the input originated from containers that lack the concept of default tracks.
 
‘infer_no_subs’
This mode is the same as infer except that if no subtitle track with disposition default exists, no subtitle track will be marked as default.

 
bonne soirée et merci encore.
Tonic8

Reply

Marsh Posté le 13-03-2023 à 00:23:03    

Cool, je mets le lien précis (partie 4.20.2 Options) ;
https://ffmpeg.org/ffmpeg-formats.html#Options-12
 
Mais en lisant ça je vois qu'en fait ça laisse la piste par défaut s'il y en a une (j'avais fait le test en rajoutant un srt à une vidéo qui n'avait pas de s-t donc pas de flag "default" ), donc il semblerait qu'il faille rajouter l'option -disposition:s none (ou -disposition:s -default) derrière -default_mode infer_no_subs si on veut qu'il n'y en ait aucune par défaut, quels que soient les flags présents dans le fichier d'origine, voir ce post qui résume ça bien ;
https://superuser.com/questions/175 [...] -mp4-files

Citation :

Same default track as in the input file :
 
-default_mode infer_no_subs
 
No default track :
 
-default_mode infer_no_subs -disposition:s -default
 
or
 
-default_mode infer_no_subs -disposition:s none
 
Force a default track :
 
-default_mode infer_no_subs -disposition:s:2 default (sets the 3rd track as default)
 
Note: if no option at all is coded, the 1st track is always the default track.


Message édité par arnuche le 13-03-2023 à 00:43:46
Reply

Sujets relatifs:

Leave a Replay

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