ffmpeg:windows编译及使用(vs2019编译)

前言

本章节记录在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
    
  • 系统版本: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
    
  3. 源代码解压

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

    在这里插入图片描述

  4. 编译

    1. 编译脚本整理如下,该编译文件放置在x264-master和ffmpeg-5.1.2的同级目录。切换到该脚本目录执行脚本。
    # 当前脚本的目录
    base_path=$(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobaiPlayGame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值