栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

windows环境下编译ffmpeg

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows环境下编译ffmpeg

一、概述

官网链接:

CompilationGuide – FFmpeghttps://trac.ffmpeg.org/wiki/CompilationGuide在官网上介绍了四种windows上的编译方法,目前仅试了第一种

CompilationGuide/MinGW – FFmpeghttps://trac.ffmpeg.org/wiki/CompilationGuide/MinGW

二、具体操作步骤

1、预置条件:

     操作系统:win10 64bit
     vs:vs2019

2、从官网上下载安装x86_64版本安装程序。

MSYS2Software Distribution and Building Platform for Windowshttps://www.msys2.org/     安装完成之后,先把安装目录下的msys2_shell.cmd中注释掉的rem set MSYS2_PATH_TYPE=inherit改成set MSYS2_PATH_TYPE=inherit。这是为了将vs的环境继承给MSYS2。

3、按照官网指导,安装gcc、pkg-config等软件包。

pacman -Syu
pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain

      

三、注意事项

1、检查编译环境,是否是如下路径

# which cl link yasm cpp
/c/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/cl
/c/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/link
/usr/bin/yasm
/mingw64/bin/cpp

 注意:重命名msys64/usr/bin/link.exe 为msys64/usr/bin/link.bak, 避免和MSVC 的link.exe冲突。

2、使用x64 Native Tools Command prompt for VS 2019打开msys2界面。命令行:

msys2_shell.cmd -mingw64

 3、配置include和lib路径。需要注意的是写include文件和lib文件路径是不要加tab键,否则可能会导致生成的makefile异常。

./configure --toolchain=msvc --target-os=win64 
    --arch=x86_64 
    --enable-shared 
    --enable-small 
    --enable-version3 
    --enable-gpl 
    --enable-nonfree 
    --disable-stripping 
    --disable-encoders 
    --disable-decoders 
    --enable-decoder=h264 
    --enable-encoder=mjpeg 
    --enable-encoder=mpeg4 
    --prefix=./build 
    --extra-cflags="-I/home/crystl/build/include -I/home/crystl/build/include/10.0.20348.0/ucrt
                             -I/home/crystl/build/include/10.0.20348.0/um  -I/home/crystl/build/include/10.0.20348.0/shared
                            -I/home/crystl/build/include/vs_include" 
    --extra-ldflags="-LIBPATH:/home/crystl/build/lib 
                               -LIBPATH:/home/crystl/build/lib/vs_x64 
                               -LIBPATH:/home/crystl/build/lib/10.0.20348.0/ucrt/x64 
                               -LIBPATH:/home/crystl/build/lib/10.0.20348.0/um/x64 
                               -LIBPATH:/home/crystl/build/lib/10.0.20348.0/ucrt_enclave/x64"

这里的include文件是从如下文件夹里面拷贝出来的

C:Program Files (x86)Windows Kits10Include10.0.20348.0

C:Program Files (x86)Microsoft Visual Studio2019ProfessionalVCToolsMSVC14.29.30133include

lib库是从如下文件夹里面拷贝出来的

C:Program Files (x86)Windows Kits10Lib10.0.20348.0

C:Program Files (x86)Microsoft Visual Studio2019ProfessionalVCToolsMSVC14.29.30133libx64

4、若是执行./configure,生成makefile失败,可以查看ffmpegffbuildconfig.log,排查问题。

5、ERROR: nvenc requested, but not all dependencies are satisfied: ffnvcodec

NVIDIA headers已经不包含在ffmpeg工程里面,需要自己在本地编译。

Using FFmpeg with NVIDIA GPU Hardware Acceleration :: NVIDIA Video Codec SDK documentationhttps://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/index.html

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
make install

配置路径包含cuda的lib库和include头文件

./configure --enable-nonfree -–enable-cuda-sdk –enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64

并且要安装对应版本的SDK文件,SDK下载路径:

https://developer.nvidia.com/nvidia-video-codec-sdk/downloadhttps://developer.nvidia.com/nvidia-video-codec-sdk/download

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号