Pour convertir un fichier de sous-titres ASS en SRT, ouvrez-le dans un éditeur gratuit comme Subtitle Edit et enregistrez-le au format SubRip (.srt), utilisez la fonction d'export d'Aegisub ou lancez la commande ffmpeg -i episode.ass episode.srt. Le texte et les temps sont conservés, l'italique et le gras en général aussi. Les polices, les couleurs, les positions exactes, les fondus, le minutage du karaoké et les dessins disparaissent : le SRT n'a pas de place pour eux. Nous avons converti notre propre fichier d'exemple et lu comment trois outils gratuits traitent chaque élément, pour que vous sachiez quoi vérifier ensuite.
Le format ASS en bref
ASS signifie Advanced SubStation Alpha. Son ancêtre, SubStation Alpha (SSA), a été écrit en 1996 par un programmeur connu sous le nom de Kotus pour la communauté du fansub d'anime ; l'ASS (version 4.00+) a suivi en 2002 avec les calques, la transparence et la rotation, selon la référence des formats de Subtitle Edit. Aucune spécification plus récente n'existe : c'est la bibliothèque de rendu libass et des éditeurs comme Aegisub qui fixent aujourd'hui ce qui fonctionne.
Cette origine se voit encore. Le fichier ASS typique qu'on cherche à convertir en SRT est un sous-titre de fansub pour un épisode d'anime, souvent rangé dans une vidéo MKV. Le format Matroska peut stocker des pistes ASS avec les polices dont elles ont besoin, en pièces jointes.
Un fichier ASS est du texte brut en trois grandes sections :
- [Script Info] : le titre, le type de script (
v4.00+pour l'ASS,v4.00pour l'ancien SSA) et la résolution du script (PlayResX,PlayResY), à laquelle se rapportent toutes les positions. - [V4+ Styles] : des styles nommés avec police, taille, couleurs, gras, italique, contour, ombre, alignement et marges. Les couleurs s'écrivent
&HAABBGGRR: bleu, puis vert, puis rouge, et 00 signifie opaque. - [Events] : des lignes
DialogueetCommentavec calque, début, fin, style, nom du personnage, marges, effet et texte. Les temps ont la forme0:00:01.20: heures, minutes, secondes et centièmes de seconde.
Dans le texte, des balises entre accolades modifient une ligne ou une partie de ligne. La référence des balises d'Aegisub les liste toutes ; voici celles qui comptent pour la conversion :
| Balise | Effet |
|---|---|
{\i1} … {\i0} | italique activé puis désactivé ; \b, \u et \s font de même pour le gras, le souligné et le barré |
{\an8} | alignement façon pavé numérique : 8 en haut au centre, 2 en bas au centre |
{\pos(960,100)} | position exacte, en pixels du script |
{\fad(300,300)} | fondu d'entrée et de sortie, en millisecondes |
{\k40} | karaoké : la syllabe suivante dure 40 centièmes de seconde |
{\p1} … {\p0} | mode dessin : le texte devient des formes vectorielles comme m 0 0 l 840 0 |
\N | retour à la ligne |
Le texte entre accolades sans barre oblique inverse est ignoré à l'affichage : les fansubbeurs s'en servent pour leurs notes.
Notre fichier d'exemple
Nous avons écrit une courte scène qui réunit ce qu'on trouve dans les vrais fichiers de fansub : deux styles (Default pour les dialogues, Panneau pour le texte à l'écran), un passage en italique, un panneau en haut au centre avec {\an8} et {\pos}, un cadre sombre dessiné derrière, une ligne de karaoké et une note du traducteur. Les accents (é, à) sont là aussi.
[Script Info]
; Fichier d'exemple écrit par Polytested pour ce guide
Title: Train de nuit (exemple)
ScriptType: v4.00+
WrapStyle: 0
PlayResX: 1920
PlayResY: 1080
ScaledBorderAndShadow: yes
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,64,&H00FFFFFF,&H000000FF,&H00000000,&H80000000,0,0,0,0,100,100,0,0,1,3,1,2,60,60,50,1
Style: Panneau,Georgia,56,&H0000D7FF,&H000000FF,&H00202020,&H00000000,-1,0,0,0,100,100,0,0,1,2,0,8,40,40,40,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,,Note : le panneau est sur le mur de la gare, rester court
Dialogue: 0,0:00:01.20,0:00:03.80,Default,Mia,0,0,0,,C'est le dernier train ce soir ?
Dialogue: 0,0:00:04.00,0:00:07.10,Default,Ren,0,0,0,,{\i1}Si on le rate,{\i0} on rentre\Nà pied jusqu'à la maison.
Dialogue: 0,0:00:04.50,0:00:09.00,Panneau,,0,0,0,,{\pos(540,80)\c&H202020&\p1}m 0 0 l 840 0 840 90 0 90{\p0}
Dialogue: 1,0:00:04.50,0:00:09.00,Panneau,,0,0,0,,{\an8\pos(960,100)\fad(300,300)}VOIE 3 – DERNIER DÉPART
Dialogue: 0,0:00:09.40,0:00:13.00,Default,Chanson,0,0,0,,{\k40}Cours {\k35}vers {\k30}la {\k80}lumière, {\k45}rentre {\k90}chez toiLe style « Panneau » est en gras, doré et aligné en haut au centre ; la ligne du panneau répète \an8 et ajoute une position et un fondu. Le calque 1 place le panneau au-dessus du cadre, qui est sur le calque 0.
Ce qu'un fichier SRT peut contenir
Un fichier SRT est une liste de sous-titres numérotés, chacun avec un temps de début, un temps de fin à la milliseconde près et son texte ; notre guide du fichier SRT détaille le format. À côté de l'ASS, il contient très peu :
- Une mise en forme simple :
<i>,<b>,<u>et<font color>. La Library of Congress précise que leur affichage dépend du lecteur. YouTube ne reconnaît aucune mise en forme dans un SRT et exige de l'UTF-8 simple. - Une position, de manière officieuse : certains lecteurs lisent un
{\an8}de style ASS au début d'une ligne SRT. Le décodeur de sous-titres de VLC, par exemple, place cette ligne en haut et masque les autres balises entre accolades. Aucune norme SRT ne le prévoit : testez votre lecteur. - Rien d'autre : ni styles, ni calques, ni noms de personnages, ni fondus, ni minutage de karaoké, ni dessins.
Pour positionner des sous-titres sur le web, le WebVTT le permet avec ses réglages de cue ; voir notre guide du fichier VTT.
Ce que notre conversion a gardé et perdu
Nous avons converti l'exemple avec un petit convertisseur écrit pour ce test : il garde tout ce que le SRT sait contenir, y compris la position du panneau en haut sous la forme {\an8}, et liste ce qu'il laisse de côté. Voici le résultat :
1
00:00:01,200 --> 00:00:03,800
C'est le dernier train ce soir ?
2
00:00:04,000 --> 00:00:07,100
<i>Si on le rate,</i> on rentre
à pied jusqu'à la maison.
3
00:00:04,500 --> 00:00:09,000
{\an8}<b>VOIE 3 – DERNIER DÉPART</b>
4
00:00:09,400 --> 00:00:13,000
Cours vers la lumière, rentre chez toi
- Six lignes ont donné quatre sous-titres. La ligne Comment et le cadre dessiné, qui ne contient pas de texte, ont disparu.
- Gardés : les mots, tous les temps (convertis des centièmes en millisecondes :
0:00:01.20devient00:00:01,200), le retour à la ligne, l'italique, le gras du style « Panneau » et la position en haut sous la forme{\an8}. Les accents sont arrivés intacts, car les deux fichiers sont en UTF-8. - Perdus : deux polices avec leurs tailles, le doré, les contours et les ombres, les deux positions
\pos, le fondu, la couleur sombre du cadre, six minutages de karaoké, trois noms de personnages (Mia, Ren, Chanson) et le calque 1. - Les sous-titres 2 et 3 se superposent de 4,5 à 7,1 secondes, car le panneau apparaît pendant que Ren parle encore. En ASS, calque et position les séparent ; en SRT, il ne reste que
{\an8}. Un lecteur qui ignore cette balise affiche les deux en bas.
La ligne de karaoké montre une limite qu'aucun convertisseur ne contourne : un sous-titre SRT n'a qu'un début et une fin, le minutage syllabe par syllabe n'a nulle part où aller. Notre guide pour convertir un LRC en SRT traite le même problème avec des paroles de chansons.
FFmpeg, Subtitle Edit et Aegisub n'appliquent pas les mêmes règles
Les pages d'aide et les sites de conversion se contentent le plus souvent de dire que les styles se perdent. Pour savoir ce qui se passe vraiment, nous avons lu le 25 octobre 2026 le code de conversion de trois outils gratuits, dans leur branche principale. Nous ne les avons ni installés ni lancés : le tableau décrit leurs règles sur le papier.
| Dans le fichier ASS | FFmpeg | Subtitle Edit | Aegisub |
|---|---|---|---|
{\i1}, {\b1} dans la ligne | <i>, <b> | <i>, <b> | <i>, <b> |
| Italique, gras, police, couleur ou alignement venant du style | transformés en balises | non repris | non repris |
| Balises de police, de taille, de couleur dans la ligne | balises <font> | balises <font>, seulement dans les lignes sans position ni effet | supprimées |
{\an8} dans la ligne | gardé | gardé si le bloc de balises commence par lui | supprimé |
\pos, \move, \fad | supprimés | supprimés | supprimés |
Karaoké {\k} | mots gardés, minutage supprimé | mots gardés, minutage supprimé | mots gardés, minutage supprimé |
Dessin {\p1} | les commandes de dessin deviennent du texte | supprimé | supprimé |
Lignes Comment | écartées | écartées | écartées |
| Lignes qui se superposent | sous-titres séparés | sous-titres séparés | découpées, avec les deux textes dans un même sous-titre pendant la superposition |
En pratique :
- FFmpeg garde le plus de mise en forme. Il écrit la police, la taille et la couleur du style dans une balise
<font>dès qu'elles diffèrent de ses valeurs par défaut (Arial, taille 16, blanc) : chaque ligne de notre style Default (Arial, taille 64) recevrait donc<font size="64">. Il n'a aucune règle pour le mode dessin : notre cadre deviendrait un sous-titre qui affichem 0 0 l 840 0 840 90 0 90. Supprimez ces lignes. - Subtitle Edit garde
{\an8}, supprime dessins et commentaires et laisse les lignes superposées telles quelles. Une ligne placée en haut uniquement par son style se retrouve en bas. - Aegisub ne garde que le gras, l'italique, le souligné et le barré. Sa documentation prévient qu'un export vers un autre format que l'ASS supprime presque toujours une bonne partie des balises. En échange, il n'y a jamais deux sous-titres à l'écran en même temps.
Convertir avec Subtitle Edit ou Aegisub
Subtitle Edit est gratuit et open source :
- Ouvrez le fichier .ass.
- Vérifiez les panneaux et les chansons dans la liste :
{\an8}en début de ligne, lignes faites uniquement de chiffres et de lettres, temps qui se chevauchent. - Choisissez le format SubRip (.srt) et enregistrez.
Pour beaucoup de fichiers, sa version en ligne de commande, seconv, convertit tout un dossier : seconv "*.ass" subrip. Par défaut, seconv écrit de l'UTF-8 avec BOM (marque d'ordre des octets) ; ajoutez --encoding:utf-8-no-bom pour vous en passer. --remove-formatting supprime toutes les balises, et seconv lit aussi les pistes de sous-titres des fichiers MKV.
Aegisub est un éditeur gratuit dont le format natif est l'ASS. Ouvrez le fichier et utilisez la fonction d'export (« Export Subtitles » dans l'interface anglaise), qui enregistre une copie dans un autre format ; choisissez SRT comme type de fichier. La fenêtre d'export permet aussi de choisir l'encodage du nouveau fichier.
Convertir avec FFmpeg
FFmpeg est un outil gratuit en ligne de commande ; il déduit le format de sortie de l'extension :
ffmpeg -i episode.ass episode.srtSi les sous-titres sont dans un fichier MKV, choisissez la piste avec -map : 0:s:0 désigne la première piste de sous-titres, 0:s:1 la deuxième.
ffmpeg -i episode.mkv -map 0:s:0 episode.srtD'après la documentation de FFmpeg, une sortie .srt n'accepte que des sous-titres en texte. Les pistes en images des Blu-ray ou des DVD demandent d'abord une reconnaissance de caractères (OCR), ce que Subtitle Edit sait faire.
Après la conversion, cherchez les commandes de dessin dans le fichier et décidez si vous gardez les balises <font>.
Les convertisseurs en ligne
De nombreux sites convertissent l'ASS en SRT. Nous ne les avons pas testés ; voici ce que disaient leurs pages le 25 octobre 2026 :
- VEED propose une page « ASS vers SRT » (version canadienne en français) : importer le fichier, choisir .SRT dans les options, télécharger. Rien n'y est dit sur ce qui se perd.
- SubtitleKit (page en anglais) dit convertir dans le navigateur sans envoyer le fichier, et c'est la seule de ces pages à lister ce qui se perd, y compris l'italique et le gras définis dans un style.
- GoTranscript convertit gratuitement et sans compte, mais ne dit ni ce qui est conservé ni où le fichier est traité.
Pour un contenu inédit ou privé, un logiciel installé sur votre ordinateur reste le choix le plus sûr.
Encodage : quand les accents se cassent
La plupart des fichiers ASS récents sont en UTF-8 ; la référence de Subtitle Edit le recommande et juge l'UTF-16 moins courant. Des fichiers plus anciens peuvent utiliser une ancienne page de code Windows, par exemple Windows-1252, celle d'Europe de l'Ouest. Aegisub essaie de deviner le jeu de caractères des fichiers qui ne sont pas en Unicode et propose « Open subtitles with charset » quand il se trompe. Les pistes ASS d'un fichier MKV posent moins de problèmes : la spécification Matroska stocke leur texte en UTF-8.
- Le champ Encoding du style n'est pas l'encodage. Il limite seulement le choix des polices ; selon la documentation d'Aegisub, il n'a rien à voir avec l'encodage du texte.
- FFmpeg refuse un texte qui n'est pas en UTF-8 valide et suggère l'option
-sub_charencdans son message d'erreur. Indiquez l'encodage avant le fichier d'entrée :ffmpeg -sub_charenc CP1252 -i episode.ass episode.srt. - Enregistrez le SRT en UTF-8. YouTube exige de l'UTF-8 simple. Ce qu'un mauvais encodage fait des « é » et des « ç » est montré dans notre guide du fichier SRT, cité plus haut.
Quand garder plutôt le fichier ASS
Dans beaucoup de fansubs, les panneaux, les chansons et le typesetting représentent la moitié du travail. Si l'apparence compte, ne convertissez pas :
- Lisez directement le fichier ASS dans un lecteur qui utilise libass, comme mpv.
- Incrustez-le dans la vidéo. Le filtre subtitles de FFmpeg dessine une piste ASS avec libass, par exemple
ffmpeg -i episode.mkv -vf subtitles=episode.mkv episode-incruste.mp4. Un texte incrusté ne se désactive plus ; notre guide sur les sous-titres pour sourds et malentendants explique quand c'est gênant. - Pour un lecteur web, passez au WebVTT, qui garde les positions.
Convertissez quand la destination exige du SRT : YouTube ne cite pas l'ASS parmi ses formats de sous-titres, et beaucoup de logiciels de montage et de plateformes prennent le SRT. Pour traduire le fichier, convertissez d'abord, puis suivez notre guide pour traduire des sous-titres. Vous n'avez besoin que du texte ? Convertissez le SRT en TXT.
Liste de contrôle après la conversion
- Comparez le nombre de sous-titres avec celui des lignes
Dialogue. Seuls les dessins et les lignes vides doivent manquer. - Cherchez
m 0 0et les lignes faites uniquement de chiffres et de lettres : des restes de dessins. - Cherchez
{\`. Ne gardez `{\an8}que si votre lecteur le lit. - Regardez les passages où panneau et dialogue se superposent.
- Vérifiez que chaque
<i>et chaque<b>est bien fermé. - Enregistrez en UTF-8 et contrôlez les accents.
- Prévisualisez le fichier sur la plateforme où vous publiez.
