【ffmpeg系列一】源码构建,ubuntu22与win10下的过程对比。

文章目录

背景

顺手编译个ffmpeg试试,看看不同平台下谁的配置比较繁琐。

先让gpt给出个教程:

ubuntu22

使用elementary-os7.1构建,看看有几个坑要踩。

  • 错误1: 依赖libavresample-dev未找到, 先无视。
  • 错误2:没有nasm/yasm, 直接禁用这个特性。./configure --prefix=/usr/local --enable-shared --disable-static --disable-x86asm
  • 警告3:apt install pkg-config解决。
  • 错误4:好吧,动态库成为了阻碍。

    解决方法:
    修改文件/etc/ld.so.conf, 内容追加一行 /usr/local/ffmpeg/lib/

    使修改生效, 执行sudo /sbin/ldconfig

最终成功 执行 ffmpeg -version, 这是个啥版本呢(可能是nightly吧)。还有这ffmpeg就是个壳的感觉。

结论

2核的奔腾 + 虚拟机 debuff *2 , 不到半小时搞定, 还是比较快的。

ubuntu22把该有的依赖都提前预置了。

win10

不考虑子系统, 因为我打算构建exe程序。 所以使用msys2。

让gpt告诉我们新的步骤。其实过程和上面的一样。

过程

  1. 下载 https://www.msys2.org/ , 安装最新版。
  2. ms,启动
  3. 更新依赖
shell 复制代码
pacman -Syu # 重启shell多来几遍,直到没有东西可更新
pacman -S make yasm pkg-config mingw-w64-x86_64-gcc
  1. 很好,configure的时候gg。
bash 复制代码
# 反向操作下,把静态库都打进exe里面
./configure --prefix=/usr/local --disable-shared --enable-static -disable-doc

错误1: ./configure: line 1773: cmp: command not found 解决pacman -S diffutils

  1. make

有个我的疏忽, 如果你是2核心4线程的cpu, 那么应该make -j4而不是2, 不然cpu跑不满

成功编译出ffmpeg.exe, 打印ffmpeg -version 试试

但是,离开msys2环境, 在cmd中运行, 就缺少dll了。那就直接从msys2安装目录复制就行

最后试试从 flv视频流中提取 一帧 输出为图片, 没毛病,工作正常。

复制代码
.\ffmpeg -i https://sample-videos.com/video321/flv/720/big_buck_bunny_720p_1mb.flv -frames:v 1 -q:v 2 output.jpg

至于如何把这两个dll集成进ffmpeg.exe, 下一期再研究。

对比结论

就ffmpeg编译过程而言, 似乎windows上更顺利些, 遇到的坑比较少,但是win10下 ./configure慢很多, 不知为何。

其实吧, msys2 + mingw64 + pacman ,体验几乎和linux一致了。当然,肯定会有一定的坑存在,遇到再说吧, 事不宜迟,还是想想下午吃什么吧。

相关推荐
为美好的生活献上中指1 小时前
本地虚拟机部署redis集群
前端·redis·ubuntu·bootstrap·html·redis集群
一叶龙洲1 小时前
Ubuntu开机无法用向日葵远程控制
linux·运维·ubuntu
antzou3 小时前
视频图片/文字水印
ffmpeg·视频水印·批量水印
我是谁??3 小时前
ubuntu22.04 + 驱动570.211.01 + cuda12.8
ubuntu·raid
半壶清水4 小时前
ubuntu中部署开源交换机模拟器bmv2详细步骤
linux·运维·网络·网络协议·tcp/ip·ubuntu
Will_Ye5 小时前
Ubuntu:系统断网后自动重连指定wifi脚本
linux·运维·ubuntu
Codector5 小时前
在Ubuntu中使用Edge侧边栏无法添加和查看同步的侧边栏问题解决
笔记·ubuntu·develop
HABuo5 小时前
【linux(四)】套接字编程--socket套接字及其接口认识
linux·运维·服务器·c语言·c++·ubuntu·centos
Ujimatsu16 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu
豆浆煮粉20 小时前
Ubuntu虚拟机对USB设备无响应且Windows主机设备管理器显示警告
windows·ubuntu