IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

FFMPEG avec WinGW-W64 en Cross Compilation Linux


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 436
    Par défaut FFMPEG avec WinGW-W64 en Cross Compilation Linux
    Slt à tous,

    J'expose mon problème initial :

    Zeranoe (http://ffmpeg.zeranoe.com/builds/) fournit des binaires FFMPEG avec toute une batterie de module intégrés.

    La société cliente utilise le binaire Windows64 avec les bibliothèques en statiques.

    On me demande de faire en sorte d'avoir un binaire identique sauf qu'il faudrait la version 1.5.2 de la lib OpenJPEG, l'une des 36 bibliothèques utilisés.

    Après avoir tenté mon coup en restant dans ma zone de confort, en restant sous Windows, je me suis rendu compte que le portage de FFMPEG +36 bibliothèques avec MinGW-w64 sous Windows, n'était pas trivial et comme Zeranoe fait de cross-compilation, je me suis résigné à y aller.

    Zeranoe fourni un script pour créer l'environnement de compilation MinGW-w64 sous Linux mais, sauf erreur de ma part, par le script de création de FFMPEG dans cet environnement.

    En lançant le binaire FFMPEG, cela donne les options données à la chaine de compilation lors du configure mais pas les options pour la Cross-Compilation. En regardant dans le fichier "configure" du projet FFMPEG, j'en n'ai déduit l'ajout de "--enable-cross-compile --arch=x86_64 --target-os=win64".

    Mais en lançant "./configure ....", patatras, je me retrouve avec des erreurs car les .h et .a des 36 bibliothèques ne sont pas "installés".

    En récupérant les sources de la 1ère bibliothèque qui déclenche une erreur : frei0r, je me retrouve avec un autre fichier "configure" mais qui n'accepte pas les mêmes flags.

    Décortiquer chaque "configure" me prend des heures, il me faudra des semaines pour générer et installer correctement toutes les bibliothèques.

    Ma Question :

    Comment générer "rapidement" ce fichu FFMPEG, juste en modifiant une bibliothèque ?

    Merci pour la moindre piste, et conseils sur l'utilisation de la toolchain MinGW-w64.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 054
    Billets dans le blog
    141
    Par défaut
    Bonjour,

    Si vous êtes sous Linux, installez les dépendances avec le gestionnaire de paquet (la version -dev/devel) des paquets. Cela devrait mieux passer.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 436
    Par défaut
    Heu, je ne vois pas trop comment.
    1- Comment connaitre les packages contenant les 36 librairies avec la bonne version, qui n'est pas forcement la dernière
    2- Comment connaitre le réglage correspondant à la cross-compilation avec un package "dev" sur les 4 versions possibles de ffmpeg ? (32/64 - static/dynamic) ?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 054
    Billets dans le blog
    141
    Par défaut
    Arf, en effet, j'avais oublié le cas de la cross compilation.
    Ils n'ont pas un script qui récupère toutes les dépendances ? Ils ne proposent rien de préconfiguré ? J'imagine que eux mêmes (les développeurs) ne s'embêtent pas à tout faire à la main.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 436
    Par défaut
    FFMPEG est un programme fourretout avec des encoders et des décoders dans tous les coins.

    Si je lance le ./configure du Git du projet, il compile, mais pas en cross-compilation et sans les encoders/décoders qui sont utilisés par mon client.
    En reprenant les lignes de bat que le client utilise avec ce nouveau FFMPEG, les options en ligne de commande sont incomprises.

    Celui-ci n'a aucune idée des choses qu'il utilise dans l'ensemble de son parc. Il utilise l'exe fourni par Zeranoe, mais ça ne convient plus.

    Il faut donc que je trouve le moyen de mettre les 35 bibliothèques + 1 mise à jour dans ce programme.

    Zeranoe ne publie pas son script de création de FFMPEG.

    J'ai trouvé un script dans un coin mais rien d'officiel :
    https://github.com/rdp/ffmpeg-windows-build-helpers

    Il plante quand je suis derrière le reverse-proxy d'entreprise (http et ftp), plante de façon non expliqué, et ne supporte pas le message d'alerte de Sourceforge sur l'utilisation des cookies de la législation française (sic!), et n'utilise pas les mêmes versions que Zeranoe.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 054
    Billets dans le blog
    141
    Par défaut
    Bah, alors désolé, mais je ne vois pas du tout de solution à part reproduire le travail de Zeranoe (et donc, à la main).
    Peut être exclure les dépendances pas vraiment utiles ? Non, vraiment, pour de la cross compilation, cela va vraiment être dur, car il faut bien sur compiler toutes les bibliothèques pour l'architecture cible.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Cross compil Linux->Windows: mthreads
    Par dj_benz dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 22/11/2012, 20h13
  2. Cross-compilation Linux vers Windows
    Par freemaul dans le forum Linux
    Réponses: 1
    Dernier message: 05/01/2011, 18h21
  3. cross compilation linux -> windows
    Par LM_programme dans le forum GTK+ avec C & C++
    Réponses: 0
    Dernier message: 20/11/2009, 22h05
  4. Cross compilation Linux->Windows d'une appli gtkmm/cairomm
    Par three minute hero dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 30/12/2007, 15h36
  5. Cross Compilation Linux Vers Windows
    Par allergen dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 03/09/2007, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo