@Sylvain_ain.
Autant que je puisse en juger, votre procédé est à la fois incontournable et sans erreur étant donné vos attendus.
'Attendus' : conteneurs .mkv au départ contenants des sous-titres au format .str, et projet de les convertir en .mp4 avec sous-titre incrusté (= 'hard-coded') par l'intermédiaire de 'Handbrake'.
Votre procédé intermédiaire [extraction du fichier sous-titre .str par 'MKVTools 3' / conversion au format .ssa par 'Miyu 1.0 (j'utilise personnellement 'Jubler', mais ça ne change rien à la démarche) / re-muxage par 'MKVTools 3' de manière à obtenir un nouveau conteneur .mkv (incorporant le sous-titre .ssa, la piste vidéo initiale et la piste audio initiale) chargeable pour conversion de .mkv à .mp4 par 'HandBrake'] me paraît, malgré sa complication apparente, correct et non simplifiable.
Car (ce que vous savez déjà) il y a 4 formats principaux de sous-titres [«pourquoi faire simple, si l'on peut faire compliqué?» semble être la devise des producteurs de ressources audio-visuelles) : .str, .text, .ssa, .(vob)sub. Le dernier désigne les ressources de sous-titres natives des DVD commerciaux et n'ont pas une nature 'texte' mais 'image' (bitmap). Un peu comme une 'couche' dans le travail d'édition d'une photo. 'HandBrake' saurait sans difficulté incruster (hard-coder) une telle ressource de sous-titre tout en convertissant en .mp4 par exemple, exactement comme on fait un 'fusionner les couches' en photo. Mais pour ça, il faut lui fournir un sous-titre '.(vob)sub'. Si on part d'un DVD (que 'HandBrake' sait importer grâce à certaine Bibliothèque fournie grâcieusement par 'VLC' -lol- si 'VLC' est installé) : aucun problème, 'HandBrake' trouve à l'import la bonne ressource de sous-titre incrustable, si l'on désire ; si l'on part d'un conteneur .mkv, il y a régulièrement parlant manque d'une telle ressource de sous-titre '.(vob)sub', étant donné que Mac, à la différence de Windows sur ce point, manque de logiciels capables de convertir des sous-titres 'texte' en sous-titres 'bitmap'.
Ce qui nous ramène à votre procédé. Car 'HandBrake' a des limites certaines dans la gestion des sous-titres, dès lors qu le but est l'incrustation à l'image (hard-codage). Quelqu'un qui se cantonne à demander à 'HandBrake' l'incorporation optionnelle, si je peux dire, càd. l'association en 'Soft' à une vidéo, de sous-titres, peut très bien se contenter de sous-titres au format .str, soit importés pour la conversion en .mp4 en mode externe ('HandBrake' a une fonction pour ça), soit récupérés 'en interne', s'il font partie du conteneur .mkv de départ. Aucun problème : 'HandBrake' saura fabriquer un .mp4 dans lequel les sous-titres .str seront 'incorporés en mode optionnel', càd. qu'un Lecteur de vidéos ('VLC', 'MPlayerX', 'QuickTime') saura soit les afficher, soit les négliger, parce qu'ils font partie des 'ressources annexes' sans être 'incrustés à l'image'. Mais 'HandBrake' ne propose, par contre, aucune option permettant d'incruster à l'image de tels sous-titres .str. Disons que 'HandBrake' tout simplement ne gère pas cette fonctionnalité à partir de fichiers de sous-titres .str (eh oui! dommage... Mais ça reviendrait à 'scanner' du texte, et il ne faut pas trop en demander tout de même dans le 'tout-en-un').
Donc, comme votre procédé le fait correctement, il faut fournir à 'HandBrake' des sous-titres au format .ssa, et ce en 'ressource interne' du fichier vidéo importé. Car a) 'HandBrake' ne reconnaît pas 'en externe' les fichiers .ssa (il ne les importe pas, comme il peut faire de fichiers .str), mais seulement 'en interne' (càd. s'ils font partie des ressources de la vidéo importée, donc s'ils ont été incorporés à titre d'élément dans un conteneur-vidéo de départ, et, ma foi, le format de conteneur .mkv me paraît bien pratique) ; et b) des sous-titres .ssa, importés donc 'en interne', seuls permettent, dans la fenêtre de tâches de 'HandBrake', au menu 'Subtitles', une 'option cochable' de 'Burned In' (synonyme de 'Hardcoded', que je traduis par 'Incrusté à l'image').
D'où, par élimination des 'impossibles' (pour parodier Sherlock), la seule option viable : convertir au préalable des sous-titres .str en .ssa, et les 'incorporer associativement' (muxage) aux ressources vidéo et audio dans un conteneur .mkv qui sera chargé par 'HandBrake'. J'ai essayé pour voir d'utiliser, lors du 'muxage' d'un conteneur .mkv, la fonction 'Burn (Hard)' proposée par 'MKVTools' pour la gestion des sous-titres. À la fois pour des sous-titres bêtement au format .str, ou pour des sous-titres au format .ssa. J'obtiens donc un conteneur .mkv que 'MPlayerX' (par exemple) va jouer sans liberté d'option avec affichage du sous-titre à l'image. En apparence, tout va bien : le sous-titre paraît 'Hardcodé'. Eh bien, non. 'HandBrake' n'est pas dupe. Après importation du conteneur, si je lui demande tout simplement une 'conversion en .mp4', je vais obtenir une vidéo qui sera lue sans sous-titre incorporé incontournablement à l'image. La preuve que la fonction 'Burn (Hard)' de 'MKVTools' ne réalise pas une véritable 'incrustation à l'image', mais respecte les critères du conteneur .mkv : simple 'incorporation associative', si je peux dire, de composants audio-visuels dans un conteneur global (Les chiens ne font pas des chats lol).
Par contre, et uniquement pour le cas de ressources de sous-titres .ssa, 'HandBrake' me propose, optionnellement (preuve que le sous-titrage est resté indépendant de la piste vidéo), dans son menu déroulant, d'ajouter le sous-titre .ssa aux ressources du .mp4 à générer. Et là, je peux cocher 'Burned In', exactement comme si le sous-tire .ssa avait été 'muxé' dans le conteneur .mp4 sans le recours à l'option 'Burn (Hard)' de 'MKVTools'.
Pfuit! Donc on en revient à votre procédé, que je répète incontournable - j'ai simplement voulu le démontrer. Eh bien! Ma modeste contribution est de le déclarer 'sans erreur'. Car, en ce qui me concerne, 'HandBrake' ayant chargé exactement le même type de conteneur .mkv que le vôtre, produit par le même logiciel 'MKVTools', et donc contenant piste vidéo + piste audio + ressource de sous-titre .ssa ; une fois cochée l'option 'cochable' du menu 'Subtitles' qui s'intitule : 'Burned In' ; produit in fine un fichier .mp4 (puisque c'est l'option retenue ici) qui incorpore bien le sous-titre à l'image sans autre option pour un Lecteur de Vidéos. Donc ça marche. Pourquoi chez vous ça ne marcherait pas? Je suis sous Mountain Lion (10.8.2) et j'utilise 'HandBrake Version 0.9.8 x86_64 (2012071800)'.
[Dernière remarque. Dans mon fichier .mp4 produit par 'Handbrake' conformément à l'option 'Burned In' du sous-titre .ssa, le sous-titre pour n'importe quel Lecteur de vidéos ('VLC', 'MPlayerX', 'QuickTime') offre bien la valeur d'incrustation à l'image, càd. n'est pas optionnel dans son affichage, mais incontournable. J'ai risqué précédemment une analogie avec le traitement d'images, par la comparaison avec la 'superposition de couches' et le 'fusionnement de couches'. Cette analogie a des limites certaines. Car prenons le fichier .mp4 produit par 'HandBrake' avec 'incorporation du sous-titre à l'image' - eh bien! si on le ré-importe dans 'MKVTools', 'MKVTools' va sans difficulté le re-décomposer en composants élémentaires, dont la piste de sous-titre .ssa. Preuve qu'il n'y a pas eu 'fusionnement de couches irréversible', comme cela se produit en photo, mais seulement 'incorporation sans fusion' si je puis dire. Procédé strictement réversible.]