WINDOWS使用msys2编译ffmpeg(编译成功,无法使用)

简介: WINDOWS使用msys2编译ffmpeg(编译成功,无法使用)

之前也编译成功过。就是编译过程与LINUX相差太大,很多库没有编译进去。于是又进行了一番搜索,发现是有可能象LINUX一样编译所有依赖库。


 结果编译后,还是无法加载。我就纳闷了:这是怎么回事?


下载安装msys2

MSYS2


安装编译工具

打开MSYS2 MINGW64,输入以下命令:


pacman -Syu --noconfirm
pacman -Sy --noconfirm git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmark mingw-w64-x86_64-diffutils mingw-w64-x86_64-autotools mingw-w64-x86_64-gdb mingw-w64-x86_64-nasm mingw-w64-x86_64-yasm
pacman -S cmake
pacman -Syu

期间可能会退出,重新打开窗口,再次输入。


编译环境变量

#!/bin/bash
set -eo pipefail
export LOCAL_PATH=$(pwd)
export BUILD_PATH=$LOCAL_PATH/ffmpeg_build_msys2
export PKG_CONFIG_PATH=$BUILD_PATH/lib/pkgconfig
export LD_LIBRARY_PATH=$BUILD_PATH/lib
export CFLAGS=-I$BUILD_PATH/include
export CPPFLAGS=-I$BUILD_PATH/include
export LDFLAGS=-L$BUILD_PATH/lib
export PATH=$BUILD_PATH/bin:$PATH
export CHOST=x86_64
export HOST=x86_64-w64-mingw32
export BASH_PATH=/mingw64/bin
export CC=$BASH_PATH/gcc
export CXX=$BASH_PATH/g++
export AR=$BASH_PATH/ar
export RANLIB=$BASH_PATH/ranlib
export STRIP=$BASH_PATH/strip
# pacman -Syu --noconfirm
# pacman -Sy --noconfirm git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmark mingw-w64-x86_64-diffutils mingw-w64-x86_64-autotools mingw-w64-x86_64-gdb mingw-w64-x86_64-nasm mingw-w64-x86_64-yasm
# pacman -S cmake
# pacman -Syu
./build-ffmpeg-items.sh


编译

之后就可以使用LINUX编译脚本了,参考:


LINUX FFMPEG编译详细过程记录(最全)_柳鲲鹏的博客-CSDN博客


比如吾LINUX脚本是这样的:

#!/bin/bash
. ./lib-ffmpeg.sh
get_ffmpeg_lib_dir
CLEAN_FLAG=1
export PATH=${DEST_LIB_PATH}/bin:${PATH}
export PKG_CONFIG_PATH=${DEST_LIB_PATH}/lib/pkgconfig
# rm -rf ${DEST_DIR}
for item in \
fdk-aac-2.0.2.tar.gz \
ffmpeg-4.4.1.tar.bz2 \
fontconfig-2.13.94.tar.xz \
freetype-2.11.1.tar.xz \
fribidi-1.0.11.tar.gz \
g729-master.zip \
gperf-3.1.tar.gz \
gsm-1.0.19.tar.gz \
ilbc-master.zip \
jpegsrc.v9d.tar.gz \
lame-3.100.tar.gz \
libass-0.15.2.tar.gz \
libpng-1.6.37.tar.xz \
libtool-2.4.6.tar.gz \
libvpx-1.11.0.tar.gz \
libxml2-2.9.12.tar.gz \
libyuv-master.zip \
nasm-2.15.05.tar.xz \
ogg-1.3.5.tar.gz \
openal-soft-1.21.1.tar.gz \
opencore-amr-0.1.5.tar.gz \
openh264-2.1.1.tar.gz \
opus-1.3.1.tar.gz \
SDL2-2.0.14.tar.gz \
speexdsp-SpeexDSP-1.2.0.tar.gz \
speex-Speex-1.2.0.tar.gz \
theora-1.1.1.tar.gz \
vo-amrwbenc-0.1.3.tar.gz \
vorbis-1.3.7.tar.gz \
which-2.21.tar.gz \
x264-stable.tar.bz2 \
x265-3.4.tar.gz \
yasm-1.3.0.tar.gz \
zlib-1.2.11.tar.gz
do
    echo ${item}
    tar_xf_ffmpeg_item ${item}
done
if [ ! -d ${LINK_LIB_DIR} ]; then
    mkdir ${LINK_LIB_DIR}
fi
ROOT_DIR=`pwd`
for item in \
libtool-2.4.6 \
nasm-2.15.05 yasm-1.3.0 \
which-2.21 \
zlib-1.2.11 \
libxml2-2.9.12 \
fdk-aac-2.0.2 \
freetype-2.11.1 fontconfig-2.13.94 \
fribidi-1.0.11 \
g729-master \
gperf-3.1 \
gsm-1.0-pl19 \
ilbc-master \
lame-3.100 \
libass-0.15.2 \
jpeg-9d libpng-1.6.37 \
libvpx-1.11.0 \
ogg-1.3.5 \
openal-soft-1.21.1 \
opencore-amr-0.1.5 \
opus-1.3.1 \
speexdsp-SpeexDSP-1.2.0 speex-Speex-1.2.0 \
theora-1.1.1 \
vo-amrwbenc-0.1.3 \
vorbis-1.3.7 \
libyuv-master \
SDL2-2.0.14 \
openh264-2.1.1 \
x264-stable \
x265-3.4 \
ffmpeg-4.4.1
do
    cd ${ROOT_DIR}
    cp -rf ${LINK_LIB_DIR} ${item}/${LINK_LIB_DIR}
    build_ffmpeg_item ${item}
    cd ${ROOT_DIR}
    rm -rf ${item}/${LINK_LIB_DIR}
    cp ${DEST_LIB_PATH}/lib/* ${LINK_LIB_DIR}
done



目录
相关文章
|
2月前
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
93 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
213 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
114 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
295 0
|
4月前
|
监控 机器人 Unix
GoLand——windows下如何编译Linux二进制文件
GoLand——windows下如何编译Linux二进制文件
65 1
GoLand——windows下如何编译Linux二进制文件
|
5月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
141 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
4月前
|
C++ Windows
Windows下编译64位CGAL
Windows下编译64位CGAL
149 0
|
4月前
|
编译器 Linux C语言
Windows下编译并使用64位GMP
Windows下编译并使用64位GMP
220 0
|
6月前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
131 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
Shell Linux 开发工具
在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时   MinGW,即 Minimalist GNU For Windows。
1350 0