Convertir des vidéos en FLV avec ffmpeg

Je viens de découvrir un message très intéressant sur Vexxblog, expliquant comment PHP peut être utilisé pour convertir des vidéos au format FLV (Flash video).

Pour rappel, FLV est un format reconnu par la plupart des lecteurs Flash, il permet de bien compresser les fichiers et d’intégrer facilement un fichier vidéo dans une page Web.

La méthode décrite par Vexxblog est d’utiliser les outils FFmpeg et FLVTool2.
FFMPEG permet de convertir la vidéo au format désiré (ici FLV), puis FLVTool2 est utilisé pour ajouter les informations meta au fichier final.
PHP est simplement là pour simplifier le traitement, par exemple si vous avez une galerie de photos et que vous souhaitez y incorporer des vidéos FLV.

Rendez-vous sur le site de FFmpeg pour le code source à compiler, ou bien sur ce site pour obtenir une version précompilée pour Windows.
FLVTool2 est disponible pour Windows, OS X et Linux sur le site officiel.
Vous aurez aussi besoin d’activer l’extension ffmpeg-php dont la version compilée pour Windows est disponible dans le Googlegroup ffmpeg-php (ou plus précisément ici).

Utilisez ensuite le code PHP fourni par Vexxblog :

http://vexxhost.com/blog/2007/05/20/how-to-convertencode-files-to-flv-using-ffmpeg-php/

[…]

Je viens de passer ma journée à essayer de compiler cette extension pour Windows et PHP 5.2.2, sans succès. Si quelqu’un y parvient, merci de faire signe…

11 réflexions au sujet de « Convertir des vidéos en FLV avec ffmpeg »

  1. Avatar de manu79320manu79320

    Il ma l’air super ce code, par contre j’aurais une cht’ite question, bo oui, j’chui po trop fort dans le domaine :

    Modifiez la constante CFG_PATH_VIDEO du script index.php ;

    je sais ou se trouve la constante (dans le script)
    mais elle correspond à quoi exactement ?
    et que dois je modifier exactement, je comprends pas ?

    merci

  2. Avatar de jcreno67jcreno67

    salut,

    pareil pour moi, quand je regarde les processus en cours, j’ai ffmpeg.exe et flvtool2.exe qui sont figés, impossible de terminer le processus à part en rebootant la machine, le fichier créé fait 0ko, quelqu’un à trouver la solution ?
    merci !

    JC67

  3. Avatar de epsi.mortyepsi.morty

    Bonjour;
    je suis dans le même problème que @sebastien_et_typh et @m3ikoviki .
    Le fichier flv est créé mais il est vide.
    Les liens donnés par @Yogui ne m’ont pas étés d’une grande utilité…
    Quelqu’un aurait la solution ?
    CD? Benjamin

  4. Avatar de sebastien_et_typhsebastien_et_typh

    Bonjour,
    deja merci pour tes explications mais je rencontre un probleme le code marche bien j’obtient le message suivant :
    1 files to convert:
    Video 100_3614.flv ok

    mais le seul probleme c’est que la video convertie pese 0 octets mais le fichier flv se cree bien sais tu d’ou ca peux venir
    merci d’avance

  5. Avatar de samurai741samurai741

    s’il vous plais, je travail sous indos moi aussi j’ai fais les memes etaps : mais j’ai une erreur sur mon navigateur est ce tu peux me guider ou j’ai le probleme mois ?

    voilà c’est l’erreur qui s’affiche :

    Parse error: parse error in c:program fileseasyphp1-8wwwflvindex.php on line 44

  6. Avatar de estampilleestampille

    Bon effectivement ta methode marche tres bien Yogui , mais que sous Windows… est ce que tu sais comment la faire fonctionner sous Linux?. Etant donné que linux ne pourra pas executer les fichiers .exe de ffmpeg et flvtool2… bref je m’y connais pas assez pour savoir quoi faire, donc si vous avez une solution.. merci!

  7. Avatar de YoguiYogui Auteur de l’article

    J’ai fini par chercher une alternative, et elle s’est présentée sous le nom de getid3, une collection de classes PHP permettant de faire la même chose que l’extension incompilable.

    L’avantage d’utiliser une classe PHP par rapport à une extension est qu’il n’est pas nécessaire de la charger en mémoire au démarrage d’Apache, alors que dans ce cas précis je ne me sers que très rarement de cette extension. De plus, l’extension permettait simplement de récupérer des informations sur les vidéos, une extension n’est donc pas justifiée pour cette utilisation.

    Le principe de mon code est le même que celui de vexxhost mais je l’ai adapté à mon besoin : prendre toutes les vidéos d’un répertoire « video/source » et les convertir en FLV dans le répertoire « video/flv ».

    Pour lire les vidéos, vous pouvez utiliser un player Flash comme celui présenté ici : http://flash.developpez.com/sources/?page=video#flvPlayback2

    Sans plus attendre, voici mon code : ftp://ftp-developpez.com/g-rossolini/blog/convert-video-to-flv.zip

    Pour l’utiliser :
    – Placez ffmpeg et flvtool2 (cf. liens ci-dessus) dans leurs répertoires respectifs dans « bin » ;
    – Placez une vidéo dans le répertoire « video/source » ;
    – Modifiez la constante CFG_PATH_VIDEO du script index.php ;
    – Chargez l’index par le navigateur Web.

    Commencez avec une vidéo de petite taille, puis essayez avec plusieurs pour voir comment votre machine réagit.

    Si (comme moi) vous êtes sous Windows, je sais que plus vous mettez de vidéos à la fois, plus le script aura du mal. La conversion fonctionne mais c’est long. Sous Linux, Mac et autres, je n’ai aucune idée des réactions mais je présume que c’est bon également…

Laisser un commentaire