【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一致了。当然,肯定会有一定的坑存在,遇到再说吧, 事不宜迟,还是想想下午吃什么吧。

相关推荐
OperateCode4 小时前
AutoVideoMerge:让二刷更沉浸的自动化视频处理脚本工具
python·opencv·ffmpeg
Nie_Xun10 小时前
ubuntu网络共享
linux·运维·ubuntu
wuicer19 小时前
ubuntu 20.04 安装anaconda以及安装spyder
linux·运维·ubuntu
shuangrenlong1 天前
ubuntu更新chrome版本
linux·chrome·ubuntu
胡耀超1 天前
DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
python·深度学习·ffmpeg·音视频·语音识别·多模态·asr
byxdaz1 天前
FFmpeg QoS 处理
ffmpeg
基于python的毕设1 天前
C语言栈的实现
linux·c语言·ubuntu
穷人小水滴1 天前
在 windows 运行 flatpak 应用 (WSL)
linux·windows·ubuntu
mit6.8241 天前
ubuntu远程桌面很卡怎么解决?
linux·ubuntu·php
morliz子轩2 天前
基于WSL搭建Ubuntu 22.04.x LTS开发环境
linux·运维·ubuntu