Nous allons voir ensemble sur ce tuto comment créer des sous-titres permanents pour ses vidéos avec ffmpeg sous Ubuntu; il ne s'agit donc pas de créer des fichiers de sous-titrage séparés pour les vidéos que l'utilisateur peut activer ou désactiver depuis son lecteur vidéo mais d'une véritable "gravure" des sous-titres sur la vidéo.
Le sous-titrage peut en effet être mis dans un fichier à part: un fichier - donc - de sous-titrage.. (l'évidence même! ) Il existe différents formats de fichiers de sous-titrage; le format le plus répandu et le plus simple à utiliser reste le format SRT.
Voici un peu le contenu d'un fichier .srt:
[numéro de la séquence] hh:mm:ss,ms --> hh:mm:ss,ms [Votre texte sur une ligne] [ou sur deux]
Exemple:
1 00:00:20,000 --> 00:00:24,400 En réponse à l'augmentation de la criminalité dans certains quartiers 2 00:00:24,600 --> 00:00:27,800 Le gouvernement se félicite pour les prochaines élections...
Vous pouvez créer vos fichiers de sous-titrage soit avec un éditeur de texte, soit plus simplement avec un éditeur de fichiers de sous-titres; le plus simple d'utilisation est Gnome SubTitles.
Maintenant que vous avez vos fichiers de sous-titres vous pouvez les utiliser directement avec vos vidéos mais vous aurez donc à préciser les deux fichiers à chaque fois avec votre lecteur de vidéo; chose qui n'est pas trop mal puisque vous pouvez définir plusieurs fichiers de sous-titres pour différentes langues et basculer entre ces langues dans votre lecteur vidéo. YouTube reconnaît aussi le format de fichier .srt et vous permet d'incorporer ces sous-titres.
Mais puisque ce tuto s'appelle "créer des sous-titres permanents pour ses vidéos" c'est ce qu'on s'attachera à faire!
Seul problème: les versions actuelles de ffmpeg disponibles dans les dépôts officiels d'Ubuntu ne supporte pas la "gravure" des sous-titres sur les vidéos! Il va falloir compiler ffmpeg à partir de sa source avec activation du mode de gravure des sous-titres sur les vidéos!
Ce tutorial a été testé avec une version x64 d'Ubuntu 13.10 mais reste valide pour les versions d'Ubuntu > 10.04. Si vous avez des problèmes n'hésitez pas à me les signaler!
Tout d'abord on va installer les dépendances:
sudo apt-get update sudo apt-get -y install autoconf automake build-essential git libass-dev libgpac-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \ libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev mkdir ~/ffmpeg_sources
Si vous ne l'avez pas remarqué on a créé un répertoire ffmpeg_sources dans votre dossier home qui servira à accueillir les fichiers à compiler. Vous pouvez bien-entendu le supprimer à la fin ou le garder pour vous en servir pour les mises-à-jour ultérieures.
Maintenant on va télécharger, compiler et installer: yasm, les encodeurs: x264, fdk-aac, libmp3lame, libopus et libvpx et puis finalement ffmpeg:
# yasm cd ~/ffmpeg_sources wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz tar xzvf yasm-1.2.0.tar.gz cd yasm-1.2.0 ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make make install make distclean . ~/.profile # x264 cd ~/ffmpeg_sources git clone --depth 1 git://git.videolan.org/x264.git cd x264 ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static make make install make distclean # fdk-aac cd ~/ffmpeg_sources git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac cd fdk-aac autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean # libmp3lame sudo apt-get install libmp3lame-dev # libopus cd ~/ffmpeg_sources wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz tar xzvf opus-1.1.tar.gz cd opus-1.1 ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean # libvpx cd ~/ffmpeg_sources git clone --depth 1 http://git.chromium.org/webm/libvpx.git cd libvpx ./configure --prefix="$HOME/ffmpeg_build" --disable-examples make make install make clean # ffmpeg cd ~/ffmpeg_sources git clone --depth 1 git://source.ffmpeg.org/ffmpeg cd ffmpeg PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" export PKG_CONFIG_PATH ./configure --prefix="$HOME/ffmpeg_build" \ --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac \ --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx \ --enable-libx264 --enable-nonfree --enable-x11grab make make install make distclean hash -r . ~/.profile
L'opération prendra un certain temps alors sirotez des carottes c'est bon pour la vue!
L'installation de ffmpeg et des encodeurs terminée vous pouvez passer à son utilisation. Si vous voulez mettre à jour votre installation (si vous avez conservé le dossier ffmpeg_sources dans votre home avec son contenu):
rm -rf ~/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffserver,vsyasm,x264,yasm,ytasm} sudo apt-get update sudo apt-get -y install autoconf automake build-essential git libass-dev libgpac-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \ libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev # x264 cd ~/ffmpeg_sources/x264 make distclean git pull ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static make make install make distclean # fdk-aac cd ~/ffmpeg_sources/fdk-aac make distclean git pull autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean # libvpx cd ~/ffmpeg_sources/libvpx make clean git pull ./configure --prefix="$HOME/ffmpeg_build" --disable-examples make make install make clean # ffmpeg cd ~/ffmpeg_sources/ffmpeg make distclean git pull PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" export PKG_CONFIG_PATH ./configure --prefix="$HOME/ffmpeg_build" \ --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac \ --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx \ --enable-libx264 --enable-nonfree --enable-x11grab make make install make distclean hash -r . ~/.profile
Si vous voulez annuler les actions entreprises par ce tuto:
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffserver,vsyasm,x264,yasm,ytasm} sudo apt-get autoremove autoconf automake build-essential git libass-dev libgpac-dev \ libmp3lame-dev libopus-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \ libvorbis-dev libvpx-dev libx11-dev libxext-dev libxfixes-dev texi2html zlib1g-dev hash -r
Passons maintenant à comment graver vos sous-titres sur vos vidéos; rien de plus facile!
ffmpeg -i votre_video_entree.mp4 -vf subtitles=votre_fichier_de_sous_titre.srt votre_video_sortie.mp4
Voilà le tuto est terminé.. Vous ne vous y attendiez pas n'est-ce pas?! Rien de plus simple comme j'avais dit! Il y a bien-entendu d'autres paramétrages que vous pouvez régler (la police, la taille des caractères, la couleur, le fond, la position sur l'image..).. Il y en a en fait énormément dont certains qui me restent inconnus.. ffmpeg est un océan il faut dire et il n'y aura jamais assez de documentation pour couvrir les trucs qu'il est capable de faire!
Des questions?! Des remarques?! N'hésitez surtout pas!