当前位置:   article > 正文

ffmpeg:windows编译及使用(vs2019编译)_ffmpeg之windows平台编译

ffmpeg之windows平台编译

前言

本章节记录在Windows上编译ffmpeg的过程及编译过程的问题,并使用编译库编写测试程序验证是否可用。

在windows上编译主要使用MSYS2和vs 2019编译器编译ffmpeg,并且验证32位和64位的编译。

环境准备

  • ffmpeg源代码

    官网:https://ffmpeg.org/

    版本:FFmpeg 5.1.2 “Riemann”

    版本信息:

    5.1.2 was released on 2022-09-25. It is the latest stable FFmpeg release from the 5.1 release branch, which was cut from master on 2022-07-13.

    It includes the following library versions:

    libavutil      57. 28.100
    libavcodec     59. 37.100
    libavformat    59. 27.100
    libavdevice    59.  7.100
    libavfilter     8. 44.100
    libswscale      6.  7.100
    libswresample   4.  7.100
    libpostproc    56.  6.100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 系统版本:Windows 10

  • 编译器:Visual Studio 2019

  • MSYS2

    MSYS2是Windows下的Linux模拟器,支持绝大多数的Linux命令,软件包管理器是pacman

    官网:https://www.msys2.org/

    版本:msys2-x86_64-20221028.exe

  • x264源代码

    x264是一个用于将视频流编码为H.264/MPEG-4 AVC压缩格式的免费软件库和应用程序。为了支持ffmpeg的H264编解码必须编译这个。

    官网:https://www.videolan.org/developers/x264.html

    版本:master分支(20221112)

编译

  1. 启动msys2

    通过vs2019的命令行启动msys2,这样msys2可以获取到vs的环境变量。

    编译32位和64位的动态库,只是启动的vs2019命令行不一样,其他执行操作都一样。下面以编译32位的动态库为例,启动msys2:

    1. 修改msys2的配置文件

      修改msys2_shell.cmd文件,打开set MSYS2_PATH_TYPE=inherit的注释(使其能继承vs2019的命令行环境)

    在这里插入图片描述

    1. 启动vs2019 x86(32位)命令行

      如下可以看到32和64的命令行,这里我们启动x86 Native ToolsCommand Prompt for Vs2019

      在这里插入图片描述

    2. 测试cl.exe的版本确实是x86(32)

      在这里插入图片描述

    3. 启动msys2

      启动mysy2(c:\msys64是msy2的安装目录),不管启动的vs2019命令行是32位还是64位的,执行下面操作都一致。

      在这里插入图片描述

      启动后的msys2:

      在这里插入图片描述

  2. 安装依赖项

    # 安装mingw工具链
    pacman -S mingw-w64-x86_64-toolchain
    
    # 安装linux base-devel
    pacman -S base-devel
    
    # 安装汇编工具,gcc等
    pacman -S yasm nasm gcc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  3. 源代码解压

    将ffmpeg和x264源码解压放在如下对应目录:

    在这里插入图片描述

  4. 编译

    1. 编译脚本整理如下,该编译文件放置在x264-master和ffmpeg-5.1.2的同级目录。切换到该脚本目录执行脚本。
    # 当前脚本的目录
    base_path=$(cd `dirname $0`
    • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/901728
推荐阅读
相关标签
  

闽ICP备14008679号