Accueil > Jean Cartier’s Blog > FFMpeg > FFMpeg : dis-moi tout !

FFMpeg : dis-moi tout !

mardi 11 septembre 2007, par administrateur

Ah ouais, comme je vois que les visites tournent principalement autour de ffmpeg (bande de techos...), un petit billet sur : Comment obtenir des infos sur une vidéo grace à ffmpeg.

Bon, on le sait, ffmpeg permet de connaitre plein de chose sur sa vidéo grâce à la commande :
- ffmpeg -i monfichiervideo

Mais c’est quoi tout ce charabias ?

ffmpeg -i monfichier.avi
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard
 configuration:  --enable-gpl --enable-pp --enable-pthreads --enable-vorbis --enable-libogg --enable-a52 --enable-dts --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
 libavutil version: 0d.49.0.0
 libavcodec version: 0d.51.11.0
 libavformat version: 0d.50.5.0
 built on Jan 28 2007 22:48:38, gcc: 4.1.2 20070106 (prerelease) (Ubuntu 4.1.1-21ubuntu7)
Input #0, avi, from 'monfichier.avi':
 Duration: 00:19:53.1, start: 0.000000, bitrate: 1297 kb/s
 Stream #0.0: Video: mpeg4, yuv420p, 512x288, 29.98 fps(r)
 Stream #0.1: Audio: mp3, 48000 Hz, stereo, 96 kb/s
Must supply at least one output file

La seule chose qui nous intéresse c’est partir de :

Input #0, avi, from 'monfichier.avi':
 Duration: 00:19:53.1, start: 0.000000, bitrate: 1297 kb/s
 Stream #0.0: Video: mpeg4, yuv420p, 512x288, 29.98 fps(r)
 Stream #0.1: Audio: mp3, 48000 Hz, stereo, 96 kb/s

Tout le reste est du blabla pour dire qui l’a compilé, avec quelle config, ...

Bon alors, qu’est ce que ça nous dit ?

Input #0, avi, from 'monfichier.avi':

Que le premier flux est de type avi (un conteneur vidéo).

 Duration: 00:19:53.1, start: 0.000000, bitrate: 1297 kb/s

Que la durée de la vidéo est de 19 minutes 53 secondes et une image, que la lecture commence à la première image et que le bitrate est de 1M297 par seconde.

 Stream #0.0: Video: mpeg4, yuv420p, 512x288, 29.98 fps(r)

Qu’il y a deux flux, le premier étant un flux vidéo encodé en mpeg4 yuv420p, que la taille de l’image est de 512 pixels sur 288 pixels et que la cadence des images est de 29,98 images par seconde.

 Stream #0.1: Audio: mp3, 48000 Hz, stereo, 96 kb/s

Que le second flux est de type audio encodé en mp3 en 48 KHz, en stéréo avec un débit de 96 kbits par seconde.

Et ben voilà, on sait tout...

Mais ce n’est pas parce que ffmpeg a la faveur des internautes du site qu’il n’y aura que des billets aussi techniques...


- Automatiser FFMpeg
- FFMpeg : dis-moi tout !
- FFmpeg - la vidéo expliquée
- FFMpeg par l’exemple

Messages

  • Bonjours,

    Je voudrais savoir si c’tait possible de recuprer seulement la resolution de la video en php.Car j’ai rencontr un probleme, lorsque j’encode certaine video j’ai un message me disant que la taille n’est pas divisible par 2 et donc je voudrais recuprer la taille et l’adapter pour qu’elle soit divisible par 2.

    Voila merci d’avane ;)

  • je cherche un progralle clef sur porte avec les sources qui fait ceci pouvez vous m’aider

    Merci de me repondre par email si vous acceptez de m’aider

    Description systme vido

    Notre site
    Nous avons un site portail qui ouvre les portes plus de 800 sites individuels.
    Chaque site est codifi avec 2 lettres et 4 chiffres.
    Chaque site traite des sujets diffrents.

    Les films vido
    Les users peuvent nous envoyer des films vido de maximum 15 minutes dans des formats diffrents en fonction de ce dont ils disposent (. Avi, .fla, .wmv, .mpeg etc.) mais aussi des .pps ou .ppt.
     ? Chaque film doit tre disponible dans le portail avec une petite photo prise dans le film et son titre.
     ? Chaque film doit tre disponible dans le site individuel o le user le destine en nous donnant un titre.

    Nous souhaitons donc avoir un programme qui/ :
     ? Reoit les films envoys par nos users.
     ? Convertit automatiquement, la rception, le film en .fla et .swf pour lire avec flash player. (je ne sais pas ce qui est ncessaire)
     ? Met un petit sigle de notre domaine en surimpression dans le film.
     ? Annule le film reu par le user dans le format original car cela prend de la place et nous nen avons pas besoin.
     ? Place le film dans le portail gnral avec son titre donn par le user avec la date de rception, une petite photo sortie du film.
     ? Place le film dans le site individuel choisit par le user avec le sigle intgr, le titre, la date et la petite photo.
     ? Associe le film au pseudo du user qui la envoye.
    Il nous faut une bonne vision du film, mais le poids ne doit pas tre trop lev et si possible un aspect personnel de flash player. On ne regarde pas le film en plein cran mais dans une fentre de 250 x 250 px.

    En administration nous devrions pouvoir
     ? voir tous les films et si ils ne correspondent pas ce que nous souhaitons,
     ? le refuser ou laccepter aprs vision.
    Il faut que nous en voyions la photo, la date, le nom du user, le titre et le code de destination.
    1. Si il y a refus, le film est sorti de partout o il a t mis et un email est envoy pour prvenir le user. A cet email on devrait pouvoir ajouter une remarque courte.
    2. Si le film est accept, il est sorti de la liste de contrle
     ? trier les films par date et lorsque souhait en sortir du domaine parce que trop ancien.

    Soit vous avez cette solution l soit une autre qui peut rpondre ce que nous devrions faire.

    Remarques
     ? Je ne suis pas du tout programmeur mais gestionnaire de sites.
     ? Si pour faire cela il faut que nous ayons un programme spcial qui se lance, il faut que le user voit que cest notre nom et logo et que ils ne doivent pas tlcharger un module externe car cela les gens naiment pas.
     ? Voir aussi comment les gens vont pouvoir nous envoyer les films car par email ce nest pas possible. On peut leur donner un accs au serveur mais pas par ftp.
     ? Il faut aussi que les films ne soient pas tlchargeables.

  • Bonjour DreamLove,

    En fait, c’est un portail avec la gestion des utilisateurs qu’il faut en premier lieu.

    Je ne peux pas trop vous aider, bien que je sois mme de rpondre ce genre de demandes.

    ffmpeg peut servir d’outil de transformation des vidos (non pas en swf ou en fla, mais en flv). C’est d’ailleurs ce que font certaines socits de production de films pour tlphones portables.

    Bref, le fonctionnement doit tre le suivant :
    - L’utilisateur envoie son fichier (upload en php par exemple avec test du format de fichier via son extension) (1).
    - Le fichier est stock de faon temporaire sur le serveur (2) qui possde un programme scrutant le rpertoire de stockage temporaire (3). Un batch est lanc par le dit programme pour tester le fichier (est-il reconnu par ffmpeg ?) (4) et le transformer en flv (5) en le renommant de manire unique. Une vignette est gnre par ffmpeg (6).
    - Le fichier temporaire est effac (7).
    - Le fichier gnr est associ dans la base de donnes l’utilisateur, avec le titre fourni par ce dernier (8), ainsi qu’un indicateur marquant qu’il n’est pas valid.
    - Vous avez une interface d’administration qui vous permet de voir tous les fichiers marqus "en attente de validation", et qui vous permet de supprimer un contenu tout en envoyant un email (9), ou d’accepter un contenu (10).

    Pour ce qui est de l’apposition d’un logo, je pense que la solution la plus simple est que cela se fasse lors du visionnage du film par un lecteur flash de fichiers flv. Sinon, les dernires versions de ffmpeg ont des modules permettant d’apposer un logo (watermarking).

    Pour ce qui est des films non tlchargeables, c’est difficile raliser, mais cela passe par un codage dans le lecteur des fichiers flv.

    Bref, il vous faut un outil de gestion d’utilisateurs avec un workflow intgrant ffmpeg.

    Cordialement

    Jean CARTIER

  • Bonjour toi Jean Cartier,

    Dans un premier temps merci pour toutes tes prcieuses informations sur FFmpeg et son utilisation, et saurais si il est galement possible d’avoir des informations sur les KEYFRAME (genre le nombre de keyframe ou la frquence des keyframe, une image toutes les 30 secondes) en plus des informations que tu peux rcuprer dans ta manipe (plus haut).

    Merci d’avance.

  • Bonjour toi Fritz,

    On ne peux avoir que le framerate travers cette commande, c’est dire le nombre d’images par secondes, mais pas le nombre d’images cl par seconde.

    Et je dois avouer que je ne sais pas trop comment faire, l maintenant, tout de suite.

    A creuser.

    Jean CARTIER

  • Bonjour Jean

    D’abord j’admire la patience et le savoir -faire prsents dans ton travail et tes rponses.

    Mon petit projet est li l"insertion de son de format mid associ a un gif -anim pour tranformer tout cela en mpeg.

    Je pense que je dois passer par deux instructions (je suis sous linux ubuntu server) :
    ffmpeg -i image.gif video.mpeg

    puis

    ffmpeg -i son.mid video.mpeg video1.mpeg (????)

    Je ne suis pas sur que cela soit juste et la meilleure facon de faire.
    Qu’en penses tu ?

  • Salut Adhoc,

    Il y a plus simple : ffmpeg -i image.gif -i son.mid video.mpeg

    A tester...

    Cordialement

    Jean CARTIER

  • Cher Monsieur,

    J’ai rcupr hier soir un pisode d’une srie tl de 25 minutes environ, que je dois transmettre mon pouse bloque dans une grande ville avec des horaires impossibles (elle rentre 22 heures de son travail).
    Le fichier initial, film avec un appareil photo face la tl (dfense de rire !) fait un total de 1,6 Go.
    Impossible d’envoyer par messagerie, ni mme de le stocker sur un serveur distant (espace de stockage limit).

    Grace vos conseils et exemples en ligne de commande, j’ai rtrci la bte 61 Mga seulement. Tout cela en quinze minutes avec un vieux clron qui chauffe normment.

    Je vous dis donc UN GRAND MERCI car vos exemples et explications son trs bien rdigs et trs pdagogiques.

    Merci aussi aux dveloppeurs de ffmpeg, Debian et au team "Sidux"

    Salutations,

    IGNACIO

  • Bonjour, un grand merci et bravo pour le travail remarquable. J’ai un souci, je n’arrive pas m’en sortir, malgr les solutions que je trouve sur internet. J’enregistre des squences avec ma freebox programme car je ne suis pas toujours l. Je transfre ensuite par ftp les morceaux sur mon mac (os X.10.5.3). Je peux les lire avec vlc (image et son) mais je voudrais les monter avec imovie pour enlever pub et autre, et ensuite graver un cd ou dvd lisible par mon lecteur de salon. Et l, pas moyen d’avoir le tout ; soit imovie prend l’image mais pas le son, soit le rsultat est illisible par mon lecteur de salon.

    Un petit coup de main pour paramtrer tout cela s’il vous plat ?

    Merci infiniment et encore bravo et merci.

    Ren

  • Bonjour,
    moi j’utilise un formulaire pour permettre l’upload de toute sorte de videos, mais j’aimerais les encoder en flv.
    Comment paramtrer ffmpeg pour accepter tous type de video et l’encoder en .flv la vole ?
    Merci