Sam & Max » ffmpeg http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 [FFMPEG] – Encoder un répertoire entier en mp3 13 http://sametmax.com/ffmpeg-encoder-un-repertoire-entier-en-mp3/ http://sametmax.com/ffmpeg-encoder-un-repertoire-entier-en-mp3/#comments Tue, 02 Apr 2013 09:39:14 +0000 http://sametmax.com/?p=5574 Petite commande fort sympatoche pour encoder tout un répertoire avec ffmpeg en ligne de commande.

(Il faut avoir ffmpeg d’installé: voir ici pour le compiler ou plus bas)
sous Ubuntu (avec un max de codecs):

sudo apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg

Ouvrez un shell dans le répertoire où se trouve les fichiers (videos, mp4, wav, etc) à convertirs en mp3 tapez:

for file in *.*; do `ffmpeg -i "$file" "$file.mp3"`;done

Ffmpeg va automatiquement encoder en mp3 44khz stéréo vos fichiers en un tour de main. Vous pouvez rajouter des options de bitrate (ie: -b 192k) ou utilisez le filtre pour convertir qu’un certain type de fichier en remplacant *.* par *.avi , *.mp4, etc.

Ps: N’hésitez pas à partager vos lignes de commandes utiles, je les rajouterai si besoin (encodage audio / video)

]]>
http://sametmax.com/ffmpeg-encoder-un-repertoire-entier-en-mp3/feed/ 13
installer ffmpeg avec x264 et support mp3 8 http://sametmax.com/installer-ffmpeg-avec-x264-et-support-mp3/ http://sametmax.com/installer-ffmpeg-avec-x264-et-support-mp3/#comments Thu, 17 May 2012 15:11:32 +0000 http://sametmax.com/?p=383 ffmpeg n’est plus à présenter, c’est génial, ça fait tout et même le café. On peut trouver des versions executables ou choisir de compiler la sienne (souvent parceque les version exe sont sans support mp3 ou/et x264 pour des raisons de droits). Compiler ffmpeg avec les libs dont on a besoin relève du défi de Spartiate, je le HAIS du plus profond de mon âme juste pour ça.

Voici une manière de s’installer un petit ffmpeg sympatoche (si vous y arrivez) avec un max d’options, toutes ne vous seront pas utiles mais même si y en a trop je vous la met quand même comme j’ai coutume de dire à ces dames…

D’abord le truc chiant, trouver les libs, je mets les liens que j’ai à l’heure actuelle mais ça change souvent.
Attention il faut être root pour pouvoir installer les libs.

JE TIENS A PRECISER QUE JE HAIS FFMPEG POUR LA COMPILATION ! CA VA PLANTER !

support mp3 : libmp3lame

wget http://cdnetworks-kr-2.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-shared
make & make install

JE HAIS FFMPEG (rappel)

support h264 : libx264

wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xvf last_x264.tar.bz2
cd x264-snapshot-20120516-2245
./configure --enable-shared
make & make install

JE HAIS FFMPEG (je vous l’ai déjà dit ?)

support Theora : libtheora

wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2
tar xvf libtheora-1.1.1.tar.bz2
cd  libtheora-1.1.1
./configure --enable-shared
make & make install

JE HAIS FFMPEG (jamais 2 sans 3)

support Vorbis : libvorbis

wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.3.tar.gz
tar xvf libvorbis-1.2.3.tar.gz
cd  libvorbis-1.2.3
./configure --enable-shared
make & make install

JE HAIS FFMPEG (un dernier pour la route)

Enfin FFMPEG (on prend la derniere version sur Git): ffmpeg

git clone git://source.ffmpeg.org/ffmpeg.git 
./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man  --enable-bzlib --disable-libdirac --enable-libfaac --enable-nonfree --enable-libmp3lame  --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --enable-runtime-cpudetect 
make & make install

Les problèmes à la compilation:
ça ne marche JAMAIS du premier coup ! Celui qui vous dit que ça s’est passé sans problème vous ment, vous méprise, vous pouvez l’égorger.
Quelques trucs pour essayer de debuger:
– si à la compilation de ffmpeg il vous dit qu’il ne trouve pas la librairie vérifier que le chemin vers celle-ci est présent dans le PATH de votre système, vous pouvez savoir où se trouve la lib en tapant locate (ou whereis) le_nom_de_la_lib
– si vous changez un paramètre dans configure pensez à faire un ‘make clear’
– éteindre l’ordi et aller vous coucher
– vérifier que le paramètre ‘enable-shared’ est bien dans le configure à la compilation des libs, par défaut il est activé mais on sait jamais

]]>
http://sametmax.com/installer-ffmpeg-avec-x264-et-support-mp3/feed/ 8
Obtenir les infos d’une video avec ffmpeg 3 http://sametmax.com/obtenir-les-infos-dune-video-avec-ffmpeg/ http://sametmax.com/obtenir-les-infos-dune-video-avec-ffmpeg/#comments Sun, 15 Apr 2012 10:36:46 +0000 http://sametmax.com/?p=394 Des fois il arrive qu’on ai besoin de savoir à quel type de vidéo on a affaire, ses codec videos, audio, sa résolution ou encore sa durée.

Avec ffmpeg on peut obtenir tout ça très simplement à l’aide de l’option “i”:

ffmpeg -i 1.mp4
ffmpeg version N-39738-g8274b21 Copyright (c) 2000-2012 the FFmpeg developers
  built on Apr 13 2012 13:46:48 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
  configuration: --enable-gpl --enable-postproc 
--enable-swscale --enable-avfilter 
--enable-libmp3lame --enable-libvorbis 
--enable-libdirac --enable-libfaac 
--enable-libx264 --enable-nonfree 
--mandir=/opt/local/share/man --enable-shared --enable-pthreads
  libavutil      51. 46.100 / 51. 46.100
  libavcodec     54. 14.101 / 54. 14.101
  libavformat    54.  3.100 / 54.  3.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 67.101 /  2. 67.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 11.100 /  0. 11.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2011-10-30 14:03:08
    encoder         : Lavf54.3.100
  Duration: 00:03:02.50, start: 0.000000, bitrate: 617 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 481 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      creation_time   : 2011-10-30 14:03:08
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 2011-10-30 14:03:08
      handler_name    : SoundHandler

Si l’on veut récupérer juste une partie des infos comme la durée on peut faire comme ceci:

ffmpeg -i 1.mp4 2>&1 | gawk 'match($0, /Duration: (.[^,]*)/, matches) {print matches[1]}' 
00:03:02.50
]]>
http://sametmax.com/obtenir-les-infos-dune-video-avec-ffmpeg/feed/ 3
error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory http://sametmax.com/error-while-loading-shared-libraries-libavdevice-so-52-cannot-open-shared-object-file-no-such-file-or-directory/ http://sametmax.com/error-while-loading-shared-libraries-libavdevice-so-52-cannot-open-shared-object-file-no-such-file-or-directory/#comments Fri, 13 Apr 2012 10:13:16 +0000 http://sametmax.com/?p=376 ffmpeg si on fait un peu de trifouillage Video/Audio on s’en sert souvent, Des fois on se dit qu’on va compiler depuis leur repo pour avoir une bonne version bien récente avec tout plein de nouveautées (sam adore ça télécharger les derniers trucs beta alpha planta) et que tout va bien aller. Mais bien sûr que non.

Après avoir cherché 2 heures pourquoi une fois compilé mon ffmpeg m’affichait ça:

error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

j’ai finis par trouver la soluce.
Créez un fichier custom-libs.conf dans le rep /etc/ld.so.conf.d et ajoutez y le rep de vos libs fraichement compilé (généralement /usr/local/lib/)

vi /etc/ld.so.conf.d/custom-libs.conf

Ajoutez cette ligne:

/usr/local/lib

Rechargez en tapant:

ldconfig
]]>
http://sametmax.com/error-while-loading-shared-libraries-libavdevice-so-52-cannot-open-shared-object-file-no-such-file-or-directory/feed/ 0
Comment bypasser les copyright youtube sur les vidéos et l’audio 3 http://sametmax.com/comment-bypasser-les-copyright-youtube-sur-les-videos-et-laudio/ http://sametmax.com/comment-bypasser-les-copyright-youtube-sur-les-videos-et-laudio/#comments Thu, 12 Apr 2012 21:03:10 +0000 http://sametmax.com/?p=363 Soyons vilains, sales et méchants.

Youtube a un système de fingerprint pour les vidéos que l’on upload, ainsi que sur l’audio. C’est à dire qu’il peut détecter si la bande son est mijéjère et les beattles ou la Calas. pareil pour la vidéo.

Des fois on a envie d’agrémenter son clip vidéo d’une musique bien sympa mais voilà youtube bloque le tout pour raison de droits d’auteurs.

ATTENTION! je ne cautionne pas particulièrement le fait d’utiliser le travail d’autruis à ses fins sans payer un centime.

Bypasser le copyright video:
j’ai essayé pas mal de méthodes, filtres et autres mais youtube s’en sort très bien, la seule soluce que j’ai trouvé c’est de mettre une image en overlay par dessus la video avec une opacité légère. pour ce faire on peut utiliser ffmpeg.

Bien sur l’image va en overlay va se voir façon filigrane, ça peut tuer une video niveau esthétique. Il faut jouer avec la transparence du png qui servira de filigrane, voir le mettre en medaillon, bref à vous de fouiner.
Pour positionner le filigrane sur la video choisir une image de la taille de la vidéo (ici 640×360) et placer son médaillon, logo, image à l’intérieur àl’endroit voulu)

#init vars
vdo_tmp_path = '/tmp/vdo_tmp'
title_path = '/tmp/david_ghetto.flv'
 
#add overlay to video
cmd = ('ffmpeg -y -i %s -s 640x360 -f mp4  -b 500k '
       '-acodec faac -ab 64k  -vf "movie=mon_image_overlay.png [logo];'
       '[in][logo] overlay=10:main_h-overlay_h-10 [out]"  %s') % (
       vdo_tmp_path, title_path)
print cmd
os.popen(cmd)

Pour l’audio:
En pitchant légérement l’audio on peut arriver à duper la protection youtube, là encore le son va s’en trouver altérer mais ça passe, au pire une voix un peu plus aigrelette et un tempo plus rapide.
Pour pitcher le son on va utiliser sox.
On sépare d’abord l’audio de la video avec ffmpeg, on pitch l’audio et on le remix avec la video

# pitch to 1 semitone to bypass youtube copyright detection         
cmd = ("ffmpeg -i %(title_path)s -ac 2 -y 1_out.wav ;"
       "ffmpeg -i %(title_path)s -vcodec copy -an -y 1_out.mp4 ;"
       "sox 1_out.wav 1_mod.wav pitch 100 norm ;"
       "ffmpeg -y -i 1_out.mp4 -i 1_mod.wav -vcodec copy %(title_path)s") % {
       'title_path' : title_path }
print cmd
os.popen(cmd)

Et on upload sur youtube…

]]>
http://sametmax.com/comment-bypasser-les-copyright-youtube-sur-les-videos-et-laudio/feed/ 3