Cette page rassemble un certain nombre de scripts pour convertir des videos prises avec un APN en Video H264 de super bonne qualité (600 kbits/s de video, 64kbit/s d'audio, encodage triple passe). Voici un premier script qui va bien pour les appareils Canon et Fuji #!/bin/sh #X264 version of rencoder # 16/03/2008 J. Kieffer VBitrate=600 ABitRate=64 x264opts="subq=7:nr=100:me=umh:partitions=all:direct_pred=auto:b_pyramid:bframes=3:frameref=5" IASampleRate=11025 case $(basename $0 rencoder.sh) in cw-) rotate="-vf rotate=1" ;; ccw-) rotate="-vf rotate=2" ;; * ) rotate="" ;; esac BN=$(basename $1 .AVI)-H264.avi rm "$BN" mplayer -dumpaudio "$1" -dumpfile audio_theme.raw sox -r $IASampleRate -c 1 -u -b -t raw audio_theme.raw -r 44100 audio_theme.wav resample rm audio_theme.raw mencoder $rotate -oac copy -ovc x264 -x264encopts bitrate=$VBitrate:pass=1:turbo=1:$x264opts -ofps 24 -o "$BN" "$1" rm "$BN" cp divx2pass.log divx2pass.bak mencoder $rotate -oac copy -ovc x264 -x264encopts bitrate=$VBitrate:pass=3:$x264opts -ofps 24 -o "$BN" "$1" rm "$BN" if [ ! -s divx2pass.log ] then cp divx2pass.bak divx2pass.log touch backup fi mencoder $rotate -oac mp3lame -lameopts mode=3:vbr=3:br=$ABitRate -audiofile audio_theme.wav -ovc x264 -x264encopts bitrate=$VBitrate:pass=3:$x264opts -ofps 24 -o "$BN" "$1" rm audio_theme.wav rm divx2pass.log if [ -s divx2pass.bak ] then rm divx2pass.bak fi if [ -s divx2pass.log.temp ] then rm divx2pass.log.temp fi Pour conserver la bande son originale, utile pour les MPEG fait par les APN sony : #!/bin/sh #X264 version of rencoder # 16/03/2008 J. Kieffer VBitrate=600 ABitRate=64 x264opts="subq=7:nr=100:me=umh:partitions=all:direct_pred=auto:b_pyramid:bframes=3:frameref=5" case $(basename $0 rencoder-mpg.sh) in cw-) rotate="-vf rotate=1" ;; ccw-) rotate="-vf rotate=2" ;; * ) rotate="" ;; esac BN=$(basename $1 .mpg)-H264.avi rm "$BN" mencoder $rotate -oac copy -ovc x264 -x264encopts bitrate=$VBitrate:pass=1:turbo=1:$x264opts -ofps 24 -o "$BN" "$1" rm "$BN" cp divx2pass.log divx2pass.bak mencoder $rotate -oac copy -ovc x264 -x264encopts bitrate=$VBitrate:pass=3:$x264opts -ofps 24 -o "$BN" "$1" rm "$BN" if [ ! -s divx2pass.log ] then cp divx2pass.bak divx2pass.log touch backup fi mencoder $rotate -oac copy -ovc x264 -x264encopts bitrate=$VBitrate:pass=3:$x264opts -ofps 24 -o "$BN" "$1" rm divx2pass.log if [ -s divx2pass.bak ] then rm divx2pass.bak fi if [ -s divx2pass.log.temp ] then rm divx2pass.log.temp fi La dernière version : la version en python qui essaye de devier quel est le meilleur traitement a effectuer pour la bande son : #!/usr/bin/python #X264 version of rencoder written in python # 16/03/2008 J. Kieffer # #rencoder.py [-cw|-ccw] [-copyaudio] files.mpg files.avi # # # VBitrate=600 ABitRate=64 x264opts="subq=7:nr=100:me=umh:partitions=all:direct_pred=auto:b_pyramid:bframes=3:frameref=5 -ofps 24" mplayer="/usr/bin/mplayer" mencoder="/usr/bin/mencoder" sox="/usr/bin/sox" import sys,os,tempfile,shutil rotate=" " DoAudio=True files=[] for i in sys.argv[1:]: if i.lower()=="-cv": rotate=" -vf rotate=1 " elif i.lower()=="-ccw": rotate=" -vf rotate=2 " elif i.lower()=="-copyaudio":DoAudio=False elif os.path.isfile(i):files.append(i) else: print "Unreconized option: "+i for file in files: - path.splitext(file)[0]+"-H264.avi" if os.path.isfile(basename): os.remove(basename) if DoAudio: print "Reading audio track" - popen("%s %s -identify -vo null -ao null -frames 0 "%(mplayer,file)) for i in sout.readlines(): if i.find("ID_AUDIO_NCH")==0:ID_AUDIO_NCH=i.split("=")[1].strip() elif i.find("ID_AUDIO_RATE")==0:ID_AUDIO_RATE=i.split("=")[1].strip() elif i.find("ID_AUDIO_BITRATE")==0:ID_AUDIO_BITRATE=i.split("=")[1].strip() print ID_AUDIO_NCH,ID_AUDIO_RATE,ID_AUDIO_BITRATE if float(ID_AUDIO_BITRATE)<=ABitRate*1000.0+1:DoAudio=False if DoAudio: - mkstemp(suffix=".raw") - system(mplayer+" %s -dumpaudio -dumpfile %s "%(file,rawaudio)) - mkstemp(suffix=".wav") - system(sox+" -r %s -c %s -u -b -t raw %s -r 44100 %s resample "%(ID_AUDIO_RATE,ID_AUDIO_NCH,rawaudio,wavaudio)) - remove(rawaudio) - system(mencoder+rotate+"-oac copy -ovc x264 -x264encopts bitrate=%s:pass=1:turbo=1:%s -o %s %s"%(VBitrate,x264opts,basename,file)) - remove(basename) - system(mencoder+rotate+"-oac copy -ovc x264 -x264encopts bitrate=%s:pass=3:%s -o %s %s"%(VBitrate,x264opts,basename,file)) - remove(basename) if not DoAudio: - system(mencoder+rotate+"-oac copy -ovc x264 -x264encopts bitrate=%s:pass=3:%s -o %s %s"%(VBitrate,x264opts,basename,file)) else: - system(mencoder+rotate+"-oac mp3lame -lameopts mode=3:vbr=3:br=%s -audiofile %s -ovc x264 -x264encopts bitrate=%s:pass=3:%s -o %s %s "%(ABitRate,wavaudio,VBitrate,x264opts,basename,file)) - remove(wavaudio) if os.path.isfile("divx2pass.log"):os.remove("divx2pass.log") if os.path.isfile("divx2pass.log.temp"):os.remove("divx2pass.log.temp")