Guide de compilation et d'installation de la bibliothèque FFmpeg sous Windows

        Quand j'apprenais FFmpeg auparavant, je rassemblais des points de connaissances dispersés sur Internet sans étude systématique. J'ai passé beaucoup de temps récemment, j'ai donc décidé de commencer à apprendre FFmpeg en profondeur, en commençant par compiler le code source par moi-même.

Cet article enregistre les fosses sur lesquelles vous avez marché pendant votre propre processus de compilation, ainsi que le processus complet de compilation et d'installation. Il est recommandé de lire le dernier dans les fosses sur lesquelles vous avez marché en premier.

Table des matières

Préparation environnementale

Installez MSYS2 et compilez la chaîne d'outils

Téléchargement du code source de FFmpeg

téléchargement du code source x264

Téléchargement SDL

compiler et installer

marché sur la fosse

article de référence


Préparation environnementale

  • Installer et configurer MYSY2
  • Télécharger le code source de FFmpeg
  • Télécharger le code source x264
  • Téléchargez le code source SDL (facultatif, requis lors de la compilation de FFplay.exe)

Installez MSYS2 et compilez la chaîne d'outils

        MSYS2 est un ensemble de suites de compilation sous Windows, qui peuvent simuler l'environnement de compilation sous Linux dans les systèmes Windows, comme l'utilisation du shell pour exécuter des commandes, l'utilisation de pacman pour installer des packages logiciels et l'utilisation de gcc (MinGW) pour compiler du code, etc. En termes simples, en utilisant MSYS2, vous pouvez compiler des logiciels sous Windows via diverses commandes que vous connaissez très bien sous Linux. Téléchargez le package d'installation exe sur le site officiel de MSYS2 , installez-le avec les privilèges d'administrateur et il y aura 6 programmes shell après l'installation.

 Démarrez MSYS2 MINGW64 et entrez les lignes de commande suivantes pour commencer l'installation de la chaîne de compilation mingw64 et des dépendances de base

sed -i "s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
pacman -Sy #提高下载速度,将下载源换成中科大的

pacman -S mingw-w64-x86_64-toolchain  # mingw64编译工具链,win下的gcc,用于编译64位的库
pacman -S mingw-w64-i686-toolchain # 用于编译32位的库
pacman -S base-devel    # 一些基本的编译工具
pacman -S yasm nasm     # 汇编器

Téléchargement du code source de FFmpeg

Téléchargez le code source sur le site officiel de F Fmpeg

 

Les trois packages peuvent être téléchargés

téléchargement du code source x264

Accédez au site officiel de x264 pour télécharger

Téléchargement SDL

Accédez au site officiel de SDL pour télécharger

 

compiler et installer

        Mettez l'installation téléchargée dans le même répertoire ( pas d'espaces ni de chinois dans le chemin ), décompressez tous les fichiers dans le répertoire courant, afin de distinguer le répertoire de code source et le répertoire d'installation de la bibliothèque, il est recommandé de modifier le nom (pas nécessaire )

 Créez un nouveau fichier de script de compilation et d'installation .sh, copiez la commande suivante, parmi eux, le paramètre de compilation ./configure peut être visualisé en ouvrant le fichier de configuration dans le répertoire de code source correspondant. Les paramètres ici sont à titre de référence uniquement, et le la signification des paramètres peut être trouvée dans l'analyse des paramètres de compilation FFmpeg - Nuggets

#!/bin/sh
#进入执行脚本所在目录
basepath=$(cd `dirname $0`;pwd)
echo ${basepath}

#进入h264源码目录
cd ${basepath}/x264-src   # 根据路径名称自行修改
pwd
#配置编译参数
./configure --prefix=${basepath}/x264-install --enable-shared
#开始16线程编译
make -j16
#将编译后的文件拷贝到--prefix参数配置目录
make install

#进入ffmpeg源码目录
cd ${basepath}/ffmpeg-5.1.2-src  # 根据路径名称自行修改
pwd
#指定PKG_CONFIG_PATH变量,告知编译器x264库的路径
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${basepath}/x264-install/lib/pkgconfig
echo ${PKG_CONFIG_PATH}
#配置编译参数
./configure --prefix=${basepath}/ffmpeg-5.1.2-install \
--enable-gpl \
--enable-libx264 \
--disable-static \
--enable-shared \
--enable-sdl2 \
--enable-ffplay \
--enable-ffprobe \
--enable-ffmpeg \
--disable-vulkan \
--extra-cflags=-l${basepath}/x264-install/include \
--extra-ldflags=-L${basepath}/x264-install/lib

#开始16线程编译
make -j16
#将编译后的文件拷贝到--prefix参数配置目录
make install

Ouvrez le fichier sdl2-config dans le code source SDL

Modifiez le chemin du préfixe, le chemin spécifique est déterminé en fonction de l'emplacement de votre fichier, vous ne pouvez pas copier directement le chemin dans l'explorateur de fichiers, vous devez le modifier au format suivant

prefix=/e/shell/SDL2-2.26.3/x86_64-w64-mingw32

Ouvrez le fichier de configuration dans le répertoire source de FFmpeg

Modifiez le chemin SDL2_CONFIG, les règles sont les mêmes que ci-dessus

SDL2_CONFIG="/e/shell/SDL2-2.26.3/x86_64-w64-mingw32/bin/sdl2-config"

 

 Ouvrez MSYS2 MINGW64, entrez dans le répertoire où se trouve le script, exécutez le script, attendez la fin de la compilation et de l'installation, une dizaine de minutes

 cd /e/shell
./build-ffmpeg-5.1.2.sh

 Après la compilation et l'installation, vous pouvez voir les fichiers de bibliothèque dans le répertoire d'installation.

marché sur la fosse

1. Le chemin du répertoire où se trouve le code source contient du chinois, ce qui entraînera un message indiquant que la bibliothèque x264 est introuvable lors de la compilation de FFmpeg, comme indiqué ci-dessous.

2. Si le fichier sdl2-config dans le code source SDL et le chemin lié à SDL dans le fichier de configuration du code source FFmpeg ne sont pas modifiés, il sera demandé que la bibliothèque SDL soit introuvable lors de la compilation de FFmpeg, comme le montre la figure ci-dessous.

3. Lors de la configuration des paramètres de compilation FFmpeg, --disable-vulkan n'est pas ajouté et une erreur sera signalée lors de la compilation. La raison est inconnue. Je ne sais pas quel sera l'impact de la désactivation de ce module (j'ai creusé un trou pour moi-même)

4. Lors de la compilation 32 bits, il indique que le compilateur C est introuvable. Pour la solution, reportez-vous à l' erreur Aucun compilateur C fonctionnel trouvé lors de la compilation de x264 sous linux_Lao Yao --- Blog-CSDN de Lao Yao

 5. Cet article utilise le compilateur mingw pour compiler FFmpeg, donc la bibliothèque compilée ne peut être utilisée que dans des projets utilisant le compilateur mingw, sinon il y aura des problèmes. J'avais initialement prévu d'utiliser la bibliothèque VS+Qt+FFmpeg pour créer un projet Oui , après avoir utilisé le compilateur msvc et introduit la bibliothèque compilée par la méthode ci-dessus, le programme ne peut pas démarrer. Après vérification, j'ai découvert que le compilateur mingw n'est pas compatible avec msvc et que VS ne peut pas utiliser le compilateur mingw, j'ai donc dû trouver une autre façon de compiler avec le compilateur msvc La méthode de FFmpeg, heureusement, il n'a pas fallu longtemps pour trouver la solution.Après avoir lu l'article de ce grand gars, j'ai découvert que la nouvelle version de FFmpeg est livrée avec le codec h264, et il n'est pas nécessaire de télécharger le code source h264 pour le compiler vous-même. De plus, si vous n'avez pas besoin de compiler ffplay.exe, vous n'avez pas besoin de télécharger le code source SDL, le processus de compilation est donc beaucoup simplifié , et il n'y a fondamentalement aucun piège, et vous pouvez le réussir en une seule fois. Plus tard, je réglerai le processus de compilation de ffmpeg avec msvc et je l'enverrai.

article de référence

win10 compile ffmpeg et ffplay - Programmeur recherché

Win10 compile ffmpeg et ffplay - Programmeur recherché (jianshu.com)

Analyse des paramètres de compilation FFmpeg - Nuggets

Aucun compilateur C fonctionnel n'a trouvé d'erreur lors de la compilation de x264 sous linux_Lao Yao --- Blog-CSDN de Lao Yao

Résolvez le problème lorsque Android NDK compile la version CPU x86 de FFmpeg 4.2.2 – K-Res Blog

window10_ffmpeg-msys2-msvc compilation_h264_mf_Loken2020's Blog-CSDN Blog 

Je suppose que tu aimes

Origine blog.csdn.net/qq_36751491/article/details/129128533
conseillé
Classement