Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 >

mercredi 4 novembre 2009

Compilation de ffmpeg (> 5.0) sous Ubuntu 8.04

Celà faisait un moment depuis le début de l'été que j'avais arrêté mes compilations pour mon outil préféré à savoir FFMPEG. Vu que un ordinateur a fraîchement débarqué dans le réseau, j'en ai donc profité pour y installer une Ubuntu 8.04.3

Ce sera donc la version en cours de développement que je testerais ici, bien que la version estampillée 5.0 soit considérée comme stable. Celà me permettra de bénéficier des dernières améliorations notamment pour le AAC et H264.

Du coup ce sera aussi l'occasion de revoir les classiques de la compilation pour ffmpeg

VHOOK N'EST PLUS SUPPORTEE!!! donc attention si on doit faire la compilation. Par exemple, maintenant superposer une image sur une vidéo ne figure pas encore dans les impératifs de développement de libavfilter.

Au menu donc

  • apt-get pour ce qu'il faut au départ
  • OPENCORE-AMR
  • FAAC
  • FAAD
  • LAME
  • YASM
  • X264
  • NASM
  • XVID
  • A52
  • FFMPEG

PREREQUIS

apt-get install git make gcc libc6-dev g++ git-core autotools-dev  autoconf autoconf2.13 autobook \
autoconf-archive gnu-standards autoconf-doc  automake1.4 m4 libtool unzip libtool

Il se peut que j'ai oublié de noter des paquets donc faire attention quand même :)

On télécharge tous les paquets dans /storage/sources. On installe tout le toutim dans une arborescence à part, par exemple /opt/multimedia. Ce qui nécessite les modifications suivantes:

export TOOLS_MULTIDIA_DIR=/opt/multimedia
export SRC=/storage/sources
export  PATH=$TOOLS_MULTIDIA_DIR/bin/:$PATH
export LD_LIBRARY_PATH=/opt/multimedia/lib/:$LD_LIBRARY_PATH
On crée le répertoire pour le téléchargement
mkdir -p $SRC

OPENCORE-AMR

FFMPEG a retiré son support pour l'ancienne librairie pour le AMR (souci de licence). Il utilise maintenant cette nouvelle librairie. Pour le téléchargement, il faut consulter le site http://opencore-amr.sourceforge.net/

Une fois téléchargé, on effectue

tar xvzf opencore-amr-0.1.2.tar.gz 
cd $SRC/opencore-amr-0.1.2
 ./configure --prefix=$TOOLS_MULTIDIA_DIR
make
make install

Remarque pour FAAC/FAAD: Les sources téléchargées ici sont disponibles à http://sourceforge.net/projects/faac/files/

FAAC

wget http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2
tar xvjf faac-1.28.tar.bz2 
cd faac-1.28
./configure --with-mp4v2 --prefix=$TOOLS_MULTIDIA_DIR
make
make install

FAAD

wget http://downloads.sourceforge.net/faad/faad-1.27.tar.bz2
tar xvzf faad2-2.7.tar.gz 
cd faad2-2.7
./configure --with-mpeg4ip --with-drm --prefix=$TOOLS_MULTIDIA_DIR
make
make install

LAME

Pour des raisons de commodités, j'ai adopté cetteversion à savoir la 3.97 notamment pour la conversion pour le MP3 qui ne pose pas de souci

cd $SRC
 wget http://freefr.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz -O - | tar xzf -|
 cd lame-3.97 
 ./configure  --enable-static=yes --enable-shared=no  --prefix=$TOOLS_MULTIDIA_DIR
 make
make install

YASM

cd $SRC
wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.2.tar.gz
tar xvzf yasm-0.7.2.tar.gz 
cd yasm-0.7.2
./configure --prefix=$TOOLS_MULTIDIA_DIR
make
make install

X264

cd $SRC
git clone git://git.videolan.org/x264.git
cd x264
./configure --prefix=$TOOLS_MULTIDIA_DIR --enable-shared
make
make install

NASM

cd $SRC
wget  wget http://www.nasm.us/pub/nasm/releasebuilds/2.05.01/nasm-2.05.01.tar.gz
tar xvzf nasm-2.05.01.tar.gz 
cd nasm-2.05.01
./configure --prefix=$TOOLS_MULTIDIA_DIR
make
make install

XVID

cd $SRC
wget wget http://downloads.xvid.org/downloads/xvidcore-1.2.1.tar.gz
tar xvzf xvidcore-1.2.1.tar.gz 
cd xvidcore
history 
cd build/generic
./configure --prefix=$TOOLS_MULTIDIA_DIR
make
make install

A52

cd $SRC
wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz -O - | tar xzf -
cd a52dec-0.7.4/
./configure --enable-static=yes --enable-shared=no --prefix=$TOOLS_MULTIDIA_DIR
make

FFMPEG

On récupère les sources

cd $SRC
git clone git://git.ffmpeg.org/ffmpeg/
cd ffmpeg
git clone git://git.ffmpeg.org/libswscale/

On lance le configure

./configure  --prefix=$TOOLS_MULTIDIA_DIR --enable-libmp3lame --enable-libx264 --enable-libxvid \
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libfaad \
--enable-libfaadbin --enable-libfaac --enable-gpl --enable-nonfree --enable-pthreads \
-enable-avfilter 
--extra-cflags='-I$TOOLS_MULTIDIA_DIR/include/ -I$TOOLS_MULTIDIA_DIR/include/a52dec/ -I$TOOLS_MULTIDIA_DIR/include/lame/ \
-I$TOOLS_MULTIDIA_DIR/include/ -I$TOOLS_MULTIDIA_DIR/include/opencore-amrnb/ -I$TOOLS_MULTIDIA_DIR/include/opencore-amrwb/' \
 --extra-ldflags=-L$TOOLS_MULTIDIA_DIR/lib

Puis

make
make install

Superposer deux images en ligne de commande grâce à ImageMagick

On installe imagemagick

apt-get install imagemagick
Il faut ensuite utiliser composite (voir http://www.imagemagick.org/script/composite.php pour plus d'informations). A titre d'exemple, je veux superposer l'image suivante
avec
J'effectue tout simplement
composite -gravity center play_text.png latin_gogo.png latin_gogo.final.png
Ce qui donne donc

dimanche 1 novembre 2009

Arrivée de monroe sur le réseau - installation de squid3 et authentification LDAP

Monroe est arrivé sur le réseau ce vendredi soir à la maison. Je l'ai pris au Carrefour de la Courtine d'Avignon. Je lui ai collé une Ubuntu Server 8.04.3 (edition server)

Ce dimanche, j'y ai installé mon squid pour mon petit réseau local. Ce qui donne maintenant ceci

Du coup pour avoir squid pour le réseau, depuis olivia,on effectue les mises à jour suivantes:

if [ $OPEN_PORT_SQUID3 -eq 1 ]
then
        CorrectInfoMailToSend "Activation de Squid3"
#       On redirige ce qui n'est pas de monroe sur le port 80 vers monroe pour squid
        iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.16 -p tcp --dport 80 -j DNAT --to 192.168.2.16:3128        
else
        WarningInfoMailToSend "Squid3 est inactif!"
fi

C'est l'url http://www.fido-fr.net/linux_squid_iptables.shtml qui m'a été utile pour cette petite configuration

Pour l'authentification avec LDAP (sur olivia) il faut suivre les indications de http://arnofear.free.fr/linux/template.php?tuto=5&page=1 , il suffira d'ajouter

auth_param basic program /usr/lib/squid3/squid_ldap_auth -b ou=Users,dc=chezdavid,dc=local -f "uid=%s" ldap://192.168.2.1
auth_param basic children 5
auth_param basic realm Web-Proxy sur DavidGIS
auth_param basic credentialsttl 2 hours
acl ldapauth proxy_auth REQUIRED
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access allow ldapauth
http_access deny all

Tuer les processus Background d'Oracle

Sur ma machine à la maison, après une mauvaise installation/désinstallation de la base, il y a quelques processus de background qui ont survécu

oracle@monroe:~$ ps aux|grep ora_
oracle    1436  0.0 99.9  1416 589505315 ?   S    13:25   0:00 grep ora_
oracle   11477  0.0 99.9 500368 589505315 ?  S    Oct31   0:00 ora_pmon_STATS
oracle   11479  0.0 99.9 499996 589505315 ?  S    Oct31   0:00 ora_dbw0_STATS
oracle   11481  0.0 99.9 499692 589505315 ?  S    Oct31   0:00 ora_lgwr_STATS
oracle   11483  0.0 99.9 499708 589505315 ?  S    Oct31   0:00 ora_ckpt_STATS
oracle   11485  0.0 99.9 499724 589505315 ?  S    Oct31   0:00 ora_smon_STATS
oracle   11487  0.0 99.9 499632 589505315 ?  S    Oct31   0:00 ora_reco_STATS
oracle   11489  0.0 99.9 499632 589505315 ?  S    Oct31   0:00 ora_s000_STATS
oracle   11491  0.0 99.9 499856 589505315 ?  S    Oct31   0:00 ora_d000_STATS
oracle   11493  0.0 99.9 499856 589505315 ?  S    Oct31   0:00 ora_d001_STATS
oracle   11495  0.0 99.9 499816 589505315 ?  S    Oct31   0:00 ora_arc0_STATS

Rien de plus simple qu'un petit kill -9 pid pour remettre tout ça en ordre.

On récupère les processus

oracle@monroe:~$ ps aux|grep ora_|awk '{ print $2}'
1438
11477
11479
11481
11483
11485
11487
11489
11491
11493
11495
Puis
ps aux|grep ora_|awk '{ print $2}'|xargs -i kill -9 {}
On vérifie
oracle@monroe:~$ ps aux|grep ora_
oracle    1456  0.0 99.9  1416 589505315 ?   S    13:28   0:00 grep ora_