基于WSL用MSVC编译ffmpeg7.1

在windows平台编译FFmpeg,网上的大部分资料都是推荐用msys2+mingw进行编译。在win10平台,我们可以采用另一种方式,即wsl+msvc 实现window平台的ffmpeg编译。

下面将以vs2022+ubuntu22.04 为例,介绍此方法

0、前期准备

  • 安装vs2022 (根据自己喜好,也可以安装其他版本的vs)

  • 安装wsl 及 linux子系统 (我选用了ubuntu22.04,可以根据喜好安装其他linux版本)

  • 下载ffmpeg代码 : 下载自己需要的ffmpeg版本的代码。 我选择了最新版本v7.1.1

  • 编译ffmpeg编译脚本: ffmpeg 的configure命令参数较多,可以提前编译脚本sh脚本,避免在命令行手动输入。

    bash 复制代码
    #!/bin/bash
    
    ARCH=x86_64
    
    PREFIX=$(pwd)/win/x64
    
    function build_android
    {
    
    ./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-debug \
    --disable-x86asm \
    --enable-gpl   \
    --enable-small \
    --enable-neon  \
    --enable-d3d12va \
    --enable-dxva2 \
    --disable-postproc \
    --disable-doc \
    --disable-avdevice \
    --disable-symver \
    --disable-outdevs \
    --disable-indevs  \
    --disable-vulkan \
    --arch=$ARCH \
    --toolchain=msvc
    
    make clean
    
    echo "============================ configure android windows x64 success =========================="
    
    }
    
    build_android

1、 准备编译环境

1.1 通过命令行方式进入 msvc编译环境。我选择了 x64 版本编译

启动后可以看到, msvc的编译路径已经添加到path中。

1.2 在msvc编译环境中启动wsl,此操作可以避免在linux系统中手动搭建msvc编译链。

wsl启动后,可以看到msvc的编译路径已经包含到ubuntu系统的path中。

2、运行编译脚本,编译ffmpeg

如上图,执行make -j xx 编译ffmpeg。执行make命令时,由于编码差异可能会出现乱码,

可以重复步骤1重新打开一个wsl窗口,然后执行make -j xx,则可以正常显示中文。

出现上述错误的原因是因为msvc的中文输出编码为GB2312, linux中编译环境中编码为UTF8,将fftools/opt_common.c用gb2312打开后,用utf8重新保存即可。

3、执行make install 将ffmpeg安装到指定目录。 (如脚本中PREFIX指定的目录)

相关推荐
IT专业服务商6 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
海尔辛6 小时前
学习黑客5 分钟小白弄懂Windows Desktop GUI
windows·学习
路溪非溪6 小时前
关于ffmpeg的简介和使用总结
ffmpeg
伐尘8 小时前
【Qt】编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64
windows·qt·visual studio
专注代码七年8 小时前
在Windows 境下,将Redis和Nginx注册为服务。
windows·redis·nginx
simple_whu14 小时前
开启WSL的镜像网络模式
windows·wsl
modest —YBW17 小时前
Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用
人工智能·windows·docker·语言模型·llama
code在飞17 小时前
windows 部署 Kafka3.x KRaft 模式 不依赖 ZooKeeper
windows·分布式·zookeeper·kafka
不会飞的鲨鱼19 小时前
Windows系统下使用Kafka和Zookeeper,Python运行kafka(二)
windows·zookeeper·kafka