informatique:nix:linux:encodage_reencodage

Encoder avec mencoder

mencoder propose tout un tas d'options. Soit la commande suivante :

mencoder /path/to/fic.in -o /path/to/fic.out -vf scale=540:432,pp=lb -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=850 \
-oac mp3lame -lameopts abr:br=96
  • /path/to/fic.in : fichier en entrée
  • -o /path/to/fic.out : fichier en sortie
  • -vf scale=540:432,pp=lb : résolution de sortie + usage de l'antialising
  • -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=850 : codec vidéo, ici mpeg4 avec un bitrate de 850 kbits
  • -oac mp3lame -lameopts abr:br=96 : codec audio, mp3 avec bitrate moyen de 96 kbits

Pour d'autres infos c'est ici : http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html On peut trouver d'autres infos sur le wiki Gentoo.

Encoder avec FFMpeg

On peut également utiliser ffmpeg (qui doit être compilé avec –enable-faad –enable-faac pour encoder le son en AAC) :

ffmpeg -y -vcodec xvid -b 1500 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 160 -i "$1" \
-deinterlace -s 480:270 "$2"

Pour la signification des options : la doc de FFmpeg ^_^

On peut aussi réencoder d'autres type de fichiers (VOB, etc), ici on ne prend que la piste audio d'un VOB :

ffmpeg -i "We're gonna groove.VOB" -acodec libmp3lame -ab 256k -f mp3 "We're gonna groove.mp3"

Généralement ça vaut le coup de compiler ffmpeg soit-même. Les versions packagées n'ont pas forcément toutes les options dont on a besoin. Voila comment je fais :

  • La première fois :
cd /usr/local
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
./configure --enable-libmp3lame --enable-libvorbis --enable-libfaad --enable-libfaac --enable-libfaadbin \
--enable-libxvid --enable-pthreads --cpu=i686 --enable-libx264 --enable-gpl
make
make install
  • Les fois suivantes :
cd /usr/local
svn update ffmpeg/
./configure --enable-libmp3lame --enable-libvorbis --enable-libfaad --enable-libfaac --enable-libfaadbin \
--enable-libxvid --enable-pthreads --cpu=i686 --enable-libx264 --enable-gpl
make
make install

:!: Avec les dernières versions xvid a été remplacé par libxvid et aac par libfaac. Par ailleurs il faut utiliser le switch -i avec toutes les autres options.
:!: Il faut également installer les librairies de dev : libfaac-dev, libfaad-dev, libxvidcore-dev, etc pour pouvoir compiler.

Encoder avec VLC (VideoLan Client)

VLC permet aussi d'encoder des fichiers (entre autres). Par contre il y a moins d'options que mencoder. On peut trouver les nightly builds à cette adresse. Soit la commande suivante :

vlc /path/to/fic/in --sout '#transcode{vcodec=mp4v,acodec=vorbis,vb=850,ab=64,deinterlace=linear,scale=0.75}\
:duplicate{dst=std{access=file,mux=ogg,url='/path/to/fic.out'}}' -d
  • /path/to/fic.in : fichier en entrée
  • -o /path/to/fic.out : fichier en sortie
  • vcodec=mp4v : on fait du mpeg4
  • acodec=vorbis : en audio on utilise du vorbis
  • vb=850 : bitrate vidéo
  • ab=64 : bitrate audio
  • deinterlace=linear : mode de désentrelacement
  • scale=0.75 : on réduit la taille du fichier en sortie
  • duplicate{dst=std{access=file,mux=ogg,url='/path/to/fic.out'}} : on sort dans un fichier et on créé un conteneur ogg
  • -d : on lance en mode démon (tâche de fond)

Pour arrêter l'encodage il faut killer le process VLC.

Conversion .flv <-> .avi

Tout simplement avec ffmpeg par exemple :

ffmpeg -i file.flv -f avi file.avi

On peut rajouter des options si besoin :

ffmpeg -i file.mp4 -acodec libmp3lame -ab 192k -f flv -aspect 4:3 -s 320x240 -b 1500k -ar 44100 -y file.flv

Les possibilités sont assez importantes pour peu que votre ffmpeg soit compilé avec les options dont vous avez besoin (xvid, aac, etc).

Utiliser des sous-titres

On peut aussi mixer un .srt dans un .avi :

mencoder input_file.avi -sub subtitles.srt -fontconfig -font Arial  -subfont-text-scale 3 -oac copy -ovc xvid \
-xvidencopts fixed_quant=5 -o output_file.avi

:!: mencoder doit être compilé avec fontconfig.

Mixer un .srt avec un .avi

Il faut tout d'abord installer les packages ci-dessous :

apt-get install ttf-liberation mencoder

:!: Sous Debian il vous faudra peut-être rajouter le dépot ci-dessous (pour mencoder) si ce n'est pas déjà fait :

deb http://www.debian-multimedia.org lenny main

On configure pour les sous-titres :

mkdir ~/.mplayer
cp /usr/share/fonts/truetype/ttf-liberation/LiberationSerif-Regular.ttf ~/.mplayer/subfont.ttf

Puis on lance mencoder :

mencoder -o output.avi -sub subtitle.srt -subfont-text-scale 3 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell input.avi
  • informatique/nix/linux/encodage_reencodage.txt
  • Dernière modification : 2022/04/18 07:54
  • de ben