Aegisub

Il n'est pas nécessaire de présenter Aegisub, la référence ultime en matière de logiciel de sous-titrage. Néanmoins, pour ceux qui seraient arrivés sur cette page par pur hasard, rappelons sa nature et ses principales fonctions en quelques lignes :
Aegisub est un logiciel d'édition de sous-titres avancé multi-plateforme, c'est à dire qu'il permet la création et la modification de fichiers de sous-titres : mise en forme, minutage, karaoké, etc. On peut presque tout faire avec Aegisub et un script SSA, aussi bien sur GNU/Linux que sur Windows ou MacOS. Le projet Aegisub est un projet communautaire porté par des passionnées du sous-titrage qui fournissent le code source sous licence BSDL avec la volonté de le garder libre et gratuit.
Si l'on trouve sans problème les binaires pour Windows, l'installation d'Aegisub sur GNU/Linux en version supérieure à 2.1.9 n'est pas aussi automatique : il va falloir compiler, les amis !
Je vais décrire ici le processus pour compiler la dernière version d'Aegisub sous (K|X|L|…)Ubuntu (12.04 et 12.10) x64 et Debian Wheezy x64 et, comme je suis gentil, je vais vous fournir le paquet deb qui va bien pour installer Aegisub sur votre Ubuntu ou votre Wheezy (64 bits, hein) sans avoir à passer par les étapes barbaresques décrites ci-dessous (je sais bien que certains d'entre vous sont allergiques à la ligne de commande, petits fripons !).
Place maintenant à la marche à suivre :
Pré-requis : installer wxWidgets ⩾ 2.9.3
Aegisub 3 repose sur wxWidgets, et là se trouve le premier « problème » : la version demandée est supérieure ou égale à 2.9.3 or, celle présente dans les dépôts est la 2.8.12. Il va donc falloir commencer par compiler une version compatible de wxWidgets :
On crée l'arborescence et on se place dedans puis on télécharge l'archive source que l'on décompresse dans la foulée :
$ mkdir -p wxWidgets-2.9.4-src && cd wxWidgets-2.9.4-src && wget http://dfn.dl.sourceforge.net/project/wxwindows/2.9.4/wxWidgets-2.9.4.tar.bz2 && tar xjf wxWidgets-2.9.4.tar.bz2 && cd wxWidgets-2.9.4
wxWidgets 2.9.4 dépend de libgtk2.0-dev que l'on va donc installer ainsi que les outils nécessaires à la compilation et la création du paquet :
Ubuntu et dérivées:
$ sudo apt-get install libgtk2.0-dev build-essential autoconf automake libtool intltool gcc g++ pkg-config libstdc++6-4.5-dev libgl1-mesa-dev libglu1-mesa-dev libglib2.0-dev checkinstall
Debian :
# apt-get install libgtk2.0-dev build-essential autoconf automake libtool intltool gcc g++ pkg-config libstdc++6-4.5-dev libgl1-mesa-dev libglu1-mesa-dev libglib2.0-dev checkinstall
On peut maintenant passer à la compilation :
$ ./configure --prefix=/usr --with-opengl
À la fin du configure, vous devriez obtenir ceci :
Configured wxWidgets 2.9.4 for `x86_64-unknown-linux-gnu'
Which GUI toolkit should wxWidgets use? GTK+ 2 with support for GTK+ printing
Should wxWidgets be compiled into single library? no
Should wxWidgets be linked as a shared library? yes
Should wxWidgets support Unicode? yes (using wchar_t)
What level of wxWidgets compatibility should be enabled?
wxWidgets 2.6 no
wxWidgets 2.8 yes
Which libraries should wxWidgets use?
STL no
jpeg sys
png sys
regex builtin
tiff sys
zlib sys
expat sys
libmspack no
sdl no
On peut maintenant lancer le make qui risque de traîner en longueur sur les machines les plus lentes. Si vous possédez un processeur multicœurs, vous pouvez comme moi utiliser le paramètre –jX où X est le nombre de cœurs dont vous disposez, histoire d'accélérer le processus :
$ make -j4
Enfin, on installe, pour peu que le make se soit déroulé sans erreur (y a pas d'raison) :
Ubuntu et dérivées :
$ sudo checkinstall -D --nodoc --maintainer=user@domain.tld --pkgname=wxwidgets2.9.4 --pkgversion=0:2.9.4-svn-`lsb_release -a | grep Codename | cut -d":" -f2 | sed 's/^[ \t]//'` --pkglicense=GPL --pkgarch=`dpkg --print-architecture` --pkgsource=http://dfn.dl.sourceforge.net/project/wxwindows/2.9.4/wxWidgets-2.9.4.tar.bz2 --provides=wxwidgets-2.9.4 --backup=no --deldoc --default
Debian :
# checkinstall -D --nodoc --maintainer=user@domain.tld --pkgname=wxwidgets2.9.4 --pkgversion=0:2.9.4-svn-`lsb_release -a | grep Codename | cut -d":" -f2 | sed 's/^[ \t]//'` --pkglicense=GPL --pkgarch=`dpkg --print-architecture` --pkgsource=http://dfn.dl.sourceforge.net/project/wxwindows/2.9.4/wxWidgets-2.9.4.tar.bz2 --provides=wxwidgets-2.9.4 --backup=no --deldoc --default
Et finalement, un petit coup de ldconfig pour refléter les changements :
Ubuntu et dérivées :
$ sudo ldconfig
Debian :
# ldconfig
À ce stade, nous nous retrouvons donc avec wxWidgets en version 2.9.4 installé dans /usr. On peut passer à Aegisub lui-même :
Aegisub 3.0.2 (dernière version stable)
On crée l'arborescence et on récupère les sources que l'on décompresse dans le même mouvement :
$ mkdir -p aegisub-3.0.2-src && cd aegisub-3.0.2-src && wget http://ftp.aegisub.org/pub/releases/aegisub-3.0.2.tar.xz && tar -xJf aegisub-3.0.2.tar.xz && cd aegisub/aegisub
Ensuite, on installe les paquets nécessaires à la compilation :
Ubuntu et dérivées :
$ sudo apt-get install libfontconfig1-dev libfreetype6-dev liblua5.1-0-dev libhunspell-dev libopenal-dev libasound2-dev libpulse-dev libass-dev libffms2-dev portaudio19-dev libjack-dev libjack0 libcurl4-openssl-dev fftw3-dev
Debian :
# apt-get install libfontconfig1-dev libfreetype6-dev liblua5.1-0-dev libhunspell-dev libopenal-dev libasound2-dev libpulse-dev libass-dev libffms2-dev portaudio19-dev libjack-dev libjack0 libcurl4-openssl-dev fftw3-dev
On lance le processus de compilation :
$ sh autogen.sh --skip-configure $ ./configure --prefix=/usr
À la fin du configure, vous devriez vous retrouver avec un truc comme ça :
Configure settings Install prefix: /usr Revision: 3.0.2 Debug no CFLAGS -Wall -Wextra -Wno-unused-parameter -std=gnu99 -pipe -g -O2 CXXFLAGS -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -O2 CPPFLAGS LDFLAGS LIBS -lm Default Settings Audio Player: ALSA Scripting Engines auto4 Lua: yes Audio Players ALSA: yes OpenAL: yes OSS: yes PortAudio: yes PulseAudio: yes A/V Providers FFMS2: yes Subtitle Providers: libass yes Misc Packages Hunspell: yes FFTW3: yes
Et c'est parti pour la compilation ! Même remarque qu'au-dessus pour le paramètre –jX :
$ make -j4
On peut maintenant créer le paquet qui va bien avec checkinstall et l'installer dans le même mouvement :
Ubuntu et dérivées :
$ sudo checkinstall -D --nodoc --maintainer=user@domain.tld --pkgname=aegisub3 --pkgversion=0:3.0.2-`lsb_release -a | grep Codename | cut -d":" -f2 | sed 's/^[ \t]//'` --pkglicense=BSDL --pkgarch=`dpkg --print-architecture` --pkgsource=http://ftp.aegisub.org/pub/releases/ --provides=aegisub-3.0.2 --requires="libffms2-2,libhunspell-1.3-0" --backup=no --deldoc --default
Debian :
# checkinstall -D --nodoc --maintainer=user@domain.tld --pkgname=aegisub3 --pkgversion=0:3.0.2-`lsb_release -a | grep Codename | cut -d":" -f2 | sed 's/^[ \t]//'` --pkglicense=BSDL --pkgarch=`dpkg --print-architecture` --pkgsource=http://ftp.aegisub.org/pub/releases/ --provides=aegisub-3.0.2 --requires="libffms2-2,libhunspell-1.3-0" --backup=no --deldoc --default
Et voilà, Aegisub 3.0.2 est installé !
Aegisub 3.1 (version de développement, instable)
Là, ça se corse (juste un peu, rassurez-vous) : depuis la révision 7538, Aegisub nécessite que les librairies Boost soient en version supérieure ou égale à 1.50.0 mais aussi qu'elles aient été construites avec C++11. Outre le fait que dans les dépôts par défaut d'Ubuntu et Debian 7 elles ne soient qu'en version 1.49, il se trouve que les versions 1.50 (des dépôts de sid, par exemple) sont construites avec C++03. Du coup, il va falloir se faire une version custom de ces librairies. Marche à suivre :
Comme d'habitude, on crée l'arborescence, on se place dedans et on récupère les sources puis on les décompresse :
$ mkdir -p boost1.53-src && cd boost1.53-src && wget http://freefr.dl.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2 && tar xjf boost_1_53_0.tar.bz2 && cd boost_1_53_0
Le système de build de Boost est assez bizarre, mais rien de bien compliqué :
$ ./bootstrap.sh --prefix=/usr && ./b2 cxxflags=--std=c++11
Puis on installe :
Ubuntu et dérivées :
$ sudo ./b2 install
Debian :
# ./b2 install
Voilà. On peut maintenant passer à Aegisub. Rien de bien différent ici par rapport à ci-dessus, si ce n'est qu'il faut installer aussi git pour pouvoir récupérer les sources et quelques nouvelles dépendances :
Ubuntu et dérivées :
$ sudo apt-get install libfontconfig1-dev libfreetype6-dev liblua5.1-0-dev libhunspell-dev libopenal-dev libasound2-dev libpulse-dev libass-dev libffms2-dev portaudio19-dev libjack-dev libjack0 libcurl4-openssl-dev fftw3-dev libicu-dev git
Évidemment, ça serait trop facile que ça suffise ;þ
En effet, libicu-dev est victime d'un bug sur Ubuntu 12.04 et 12.10 : un fichier .pc manquant et c'est la cata, pkg-config ne sait pas où trouver icu-uc, le configure échoue lamentablement. Heureusement, une solution existe : il faut rajouter un PPA qui contient les versions corrigées de libicu48 et libicu-dev pour Ubuntu Precise et Quatal :
$ sudo add-apt-repository ppa:ubuntu-desktop/ppa
Le problème maintenant pour les utilisateurs de la 12.04 Precise Pangolin, c'est que dans ce PPA il n'y a qu'Unity-greeter pour eux. Il faut donc changer la configuration de ce PPA en remplaçant precise par quantal (soit en passant par Synaptic, soit en éditant directement le fichier /etc/apt/sources.list.d/ubuntu-desktop-ppa-precise.list). Une fois ceci fait, on lance :
$ sudo apt-get -qq update && sudo apt-get upgrade
Ça ne craint rien, hein, les deux seuls paquets de ce PPA sont libicu48 et libicu-dev.
Et enfin, là, c'est bon : on dispose de la bonne version de libicu-dev et le configure pourra se dérouler normalement.
Pour Debian, ce bug n'existe pas donc pas besoin de se prendre la tête :
# apt-get install libfontconfig1-dev libfreetype6-dev liblua5.1-0-dev libhunspell-dev libopenal-dev libasound2-dev libpulse-dev libass-dev libffms2-dev portaudio19-dev libjack-dev libjack0 libcurl4-openssl-dev fftw3-dev libicu-dev git
On récupère les sources :
$ git clone https://github.com/Aegisub/Aegisub aegisub3.1-src $ cd aegisub3.1-src/aegisub
On peut maintenant lancer le processus de compilation :
$ sh autogen.sh $ ./configure --prefix=/usr
Si le configure s'est bien passé, vous vous retrouvez avec ça :
Configure settings Install prefix: /usr Revision: 7557-master-84410f7 Debug no CFLAGS -Wall -Wextra -Wno-unused-parameter -std=gnu99 -pipe -g -O3 CXXFLAGS -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -O3 CPPFLAGS LDFLAGS LIBS -lm Default Settings Audio Player: ALSA Scripting Engines auto4 Lua: yes Audio Players ALSA: yes OpenAL: yes OSS: yes PortAudio: yes PulseAudio: yes A/V Providers FFMS2: yes Subtitle Providers: libass yes Misc Packages Hunspell: yes FFTW3: yes
Et c'est parti pour la compilation ! Même remarque qu'au-dessus pour le paramètre –jX :
$ make -j4
On peut maintenant créer le paquet qui va bien avec checkinstall et l'installer dans le même mouvement :
Ubuntu et dérivées :
$ sudo checkinstall -D --nodoc --maintainer=user@domain.tld --pkgname=aegisub3 --pkgversion=0:3.1+git~r`cat build/git_version.h | awk ' NR==2 { print $3 } ' | sed -e 's/"//g'`-`lsb_release -a | grep Codename | cut -d":" -f2 | sed 's/^[ \t]//'` --pkglicense=BSDL --pkgarch=`dpkg --print-architecture` --pkgsource=https://github.com/Aegisub/Aegisub --provides=aegisub-3.1 --requires="libffms2-2,libhunspell-1.3-0" --backup=no --deldoc --default
Debian :
# checkinstall -D --nodoc --maintainer=user@domain.tld --pkgname=aegisub3 --pkgversion=0:3.1+git~r`cat build/git_version.h | awk ' NR==2 { print $3 } ' | sed -e 's/"//g'`-`lsb_release -a | grep Codename | cut -d":" -f2 | sed 's/^[ \t]//'` --pkglicense=BSDL --pkgarch=`dpkg --print-architecture` --pkgsource=https://github.com/Aegisub/Aegisub --provides=aegisub-3.1 --requires="libffms2-2,libhunspell-1.3-0" --backup=no --deldoc --default
Et hop !
Annexe
1) J'ai pas Aegisub dans mon menu, au secours !
Si l'installation ne crée pas d'entrée dans le menu, pas de panique, on va le faire à la main :
Ubuntu et dérivées et Debian :
$ gksudo gedit /usr/share/applications/aegisub3.1.desktop
Mint :
$ gksudo pluma /usr/share/applications/aegisub3.1.desktop
Dans ce fichier aegisub3.1.desktop que nous créons, collons le contenu suivant :
[Desktop Entry] Version=1.0 Type=Application Name=Aegisub 3.1 GenericName=Subtitle Editor Comment=Create and edit subtitles for film and videos. Exec=aegisub-3.1 %f TryExec=aegisub-3.1 Icon=aegisub Terminal=false Categories=AudioVideo;AudioVideoEditing; MimeType=application/x-srt;text/plain;text/x-ass;text/x-microdvd;text/x-ssa; StartupNotify=true
Voilà : nous avons maintenant Aegisub 3.1 dans notre menu.
2) C'est bien joli tout ça, mais comment je fais pour mettre à jour ?
C'est très simple :
$ cd aegisub3.1-src/aegisub $ make distclean $ git pull
Puis, il suffira de relancer les étapes de la compilation à partir de l'autogen.sh.
3) Euh ouais mais euh, t'es gentil, mais j'ai rien pigé à ton charabia alors je fais comment pour avoir Aegisub 3 quand même ?
Il suffit de télécharger les paquets précompilés pour wxWidgets 2.9.4 et Aegisub 3.1 dans l'espace de téléchargement. En les installant tous les deux et en lançant un sudo ldconfig à la fin, ça devrait fonctionner. Sinon, il va falloir comprendre le charabia…
4) La correction orthographique ne fonctionne pas =/
Aegisub ⇒ Options ⇒ Interface ⇒ Renseigner le chemin des dictionnaires avec « /usr/share/hunspell »
Pour savoir ce qui a été corrigé|ajouté|modifié à chaque révision, rendez-vous sur https://github.com/Aegisub/Aegisub/commits/master
Cette page sera tenue à jour au gré de mes mises à jour d'Aegisub (donc pas nécessairement à chaque nouveau commit), tant dans la marche à suivre que dans la mise à disposition de paquets pré-compilés.
Liens :
8 commentaires
Laisser un commentaire
Assurez-vous de remplir les champs * requis. Les commentaires sont modérés et en nofollow.
Pas de spam, pas de pub !

Salut comment on fait pour l'ouvrir ?
Eh bien, en double-cliquant dessus, il s'ouvre comme tout paquet deb sous Ubuntu avec, selon la configuration de chacun, la Logithèque, Synaptic, GDebi etc.
Sinon, dans un terminal : sudo dpkg –i aegisub*.deb
Merci! Ça fonctionne parfaitement et les explications sont claires et faciles!
Aegisub 3.0 est sorti ce dimanche.
En effet, et je suis évidemment au courant mais je n'aurai pas le temps de mettre à jour avant ce week-end ^^
D'ailleurs, à cette occasion, il y aura une build pour Debian Wheezy aussi.
Pour Linux Mint 13 Maya (Mint), les trucs a changer sont simple quand on prends la version Ubuntu. On change tout les precise, pour maya dans checkinstall et on change gedit pour pluma
Comme d'habitude, merci pour ce tutoriel!
Salut,
J'ai installé Aegisub sans problème sur mon système 32 bits sans problèmes en suivant la méthode, par contre lorsque je suis la même procédure pour l'installation sur mon système 64 bits, je me retrouve avec l'erreur suivante lorsque j'installe les widgets, ça fait 3 fois que j'essaie, et 3 fois que j'ai la même erreur :
coredll_gtk_choice.o: file not recognized: File truncated
collect2: ld a retourné 1 code d'état d'exécution
make: *** [/home/xanh/wxWidgets-2.9.4-src/wxWidgets-2.9.4/wxWidgets-2.9.4-src/wxWidgets-2.9.4/lib/libwx_gtk2u_core-2.9.so.4.0.0] Erreur 1
Merci!