安装SDL和FFmpeg

1、先记录SDL
这玩意还是有一点讲究的

具体步骤:
下载 SDL包:
链接:https://www.libsdl.org/release/SDL2-2.0.14.tar.gz

可以用迅雷,下载完之后,
解压:

tar -zxvf SDL2-2.0.14.tar.gz

进入安装目录

cd SDL2-2.0.14

这里推荐先安装几个包

sudo apt install libsdl2-dev
sudo apt install libwayland-dev wayland-protocols
# 如果存在安装失败的情况
# 判断依据
pkg-config --cflags --libs wayland-client
# 如果返回的值是
-I/usr/include -L/usr/lib/x86_64-linux-gnu -lwayland-client
# 那就没啥问题
# 否则 执行 reinstall 
sudo apt install --reinstall libwayland-dev wayland-protocols# 安装完了记得看看是不是在
find /usr -name "libwayland-client.so*" 2>/dev/null
#返回这些 就ok
/usr/lib/x86_64-linux-gnu/libwayland-client.so
/usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0
/usr/lib/x86_64-linux-gnu/libwayland-client.so.0

开始编译

./configure --prefix=$PWD/_install

如果存在wayland找不到,那就手动指定wayland的位置

./configure --prefix=$PWD/_install LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lwayland-client"

编译完成后 安装

make && make install

然后就可以看见,没有报错,最多输出一些警告

 ./configure --prefix=$PWD/_install LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lwayland-client"checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for gcc... gcc
……/bin/bash build-scripts/mkinstalldirs /home/ctt/Desktop/SDL2-2.0.14/_install/lib
mkdir -p -- /home/ctt/Desktop/SDL2-2.0.14/_install/lib
/bin/bash ./libtool --quiet --mode=install /usr/bin/install -c build/libSDL2.la /home/ctt/Desktop/SDL2-2.0.14/_install/lib/libSDL2.la
/bin/bash ./libtool --quiet --mode=install /usr/bin/install -c build/libSDL2main.la /home/ctt/Desktop/SDL2-2.0.14/_install/lib/libSDL2main.la
/bin/bash ./libtool --quiet --mode=install /usr/bin/install -c build/libSDL2_test.la /home/ctt/Desktop/SDL2-2.0.14/_install/lib/libSDL2_test.la
/bin/bash build-scripts/mkinstalldirs /home/ctt/Desktop/SDL2-2.0.14/_install/share/aclocal
mkdir -p -- /home/ctt/Desktop/SDL2-2.0.14/_install/share/aclocal
/usr/bin/install -c -m 644 /home/ctt/Desktop/SDL2-2.0.14/sdl2.m4 /home/ctt/Desktop/SDL2-2.0.14/_install/share/aclocal/sdl2.m4
/bin/bash build-scripts/mkinstalldirs /home/ctt/Desktop/SDL2-2.0.14/_install/lib/pkgconfig
mkdir -p -- /home/ctt/Desktop/SDL2-2.0.14/_install/lib/pkgconfig
/usr/bin/install -c -m 644 sdl2.pc /home/ctt/Desktop/SDL2-2.0.14/_install/lib/pkgconfig
/bin/bash build-scripts/mkinstalldirs /home/ctt/Desktop/SDL2-2.0.14/_install/lib/cmake/SDL2
mkdir -p -- /home/ctt/Desktop/SDL2-2.0.14/_install/lib/cmake/SDL2
/usr/bin/install -c -m 644 sdl2-config.cmake /home/ctt/Desktop/SDL2-2.0.14/_install/lib/cmake/SDL2
/usr/bin/install -c -m 644 sdl2-config-version.cmake /home/ctt/Desktop/SDL2-2.0.14/_install/lib/cmake/SDL2

打开安装目录

cd _install
# 查看:~/Desktop/SDL2-2.0.14/_install$ ls
bin  include  lib  share

可以下载一个 tree 看一下里面的结构,比较清晰

:~/Desktop/SDL2-2.0.14/_install$ sudo apt install tree
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
:~/Desktop/SDL2-2.0.14/_install$ tree
.
├── bin
│   └── sdl2-config
├── include
│   └── SDL2
│       ├── begin_code.h
│       ├── close_code.h
│       ├── SDL_assert.h
│       ├── SDL_atomic.h
│       ├── SDL_audio.h
│       ├── SDL_bits.h
│       ├── SDL_blendmode.h
│       ├── SDL_clipboard.h
│       ├── SDL_config.h
│       ├── SDL_cpuinfo.h
│       ├── SDL_egl.h
│       ├── SDL_endian.h
│       ├── SDL_error.h
│       ├── SDL_events.h
│       ├── SDL_filesystem.h
│       ├── SDL_gamecontroller.h
│       ├── SDL_gesture.h
│       ├── SDL.h
│       ├── SDL_haptic.h
│       ├── SDL_hints.h
│       ├── SDL_joystick.h
│       ├── SDL_keyboard.h
│       ├── SDL_keycode.h
│       ├── SDL_loadso.h
│       ├── SDL_locale.h
│       ├── SDL_log.h
│       ├── SDL_main.h
│       ├── SDL_messagebox.h
│       ├── SDL_metal.h
│       ├── SDL_misc.h
│       ├── SDL_mouse.h
│       ├── SDL_mutex.h
│       ├── SDL_name.h
│       ├── SDL_opengles2_gl2ext.h
│       ├── SDL_opengles2_gl2.h
│       ├── SDL_opengles2_gl2platform.h
│       ├── SDL_opengles2.h
│       ├── SDL_opengles2_khrplatform.h
│       ├── SDL_opengles.h
│       ├── SDL_opengl_glext.h
│       ├── SDL_opengl.h
│       ├── SDL_pixels.h
│       ├── SDL_platform.h
│       ├── SDL_power.h
│       ├── SDL_quit.h
│       ├── SDL_rect.h
│       ├── SDL_render.h
│       ├── SDL_revision.h
│       ├── SDL_rwops.h
│       ├── SDL_scancode.h
│       ├── SDL_sensor.h
│       ├── SDL_shape.h
│       ├── SDL_stdinc.h
│       ├── SDL_surface.h
│       ├── SDL_system.h
│       ├── SDL_syswm.h
│       ├── SDL_test_assert.h
│       ├── SDL_test_common.h
│       ├── SDL_test_compare.h
│       ├── SDL_test_crc32.h
│       ├── SDL_test_font.h
│       ├── SDL_test_fuzzer.h
│       ├── SDL_test.h
│       ├── SDL_test_harness.h
│       ├── SDL_test_images.h
│       ├── SDL_test_log.h
│       ├── SDL_test_md5.h
│       ├── SDL_test_memory.h
│       ├── SDL_test_random.h
│       ├── SDL_thread.h
│       ├── SDL_timer.h
│       ├── SDL_touch.h
│       ├── SDL_types.h
│       ├── SDL_version.h
│       ├── SDL_video.h
│       └── SDL_vulkan.h
├── lib
│   ├── cmake
│   │   └── SDL2
│   │       ├── sdl2-config.cmake
│   │       └── sdl2-config-version.cmake
│   ├── libSDL2-2.0.so.0 -> libSDL2-2.0.so.0.14.0
│   ├── libSDL2-2.0.so.0.14.0
│   ├── libSDL2.a
│   ├── libSDL2.la
│   ├── libSDL2main.a
│   ├── libSDL2main.la
│   ├── libSDL2.so -> libSDL2-2.0.so.0.14.0
│   ├── libSDL2_test.a
│   ├── libSDL2_test.la
│   └── pkgconfig
│       └── sdl2.pc
└── share└── aclocal└── sdl2.m4
10 directories, 90 files
:~/Desktop/SDL2-2.0

这就安装好了,剩下的就交由 FFmpeg 和 SDL进行串联开发了。
FFmpeg 的安装比较简单,我选择的是在conda中,直接用

pip install FFmpeg 

然后测试

ffmpeg
ffmpeg version 4.4.2 Copyright (c) 2000-2021 the FFmpeg developersbuilt with gcc 12.3.0 (conda-forge gcc 12.3.0-2)configuration: --prefix=/home/ctt/anaconda3/envs/skyeye --cc=/home/conda/feedstock_root/build_artifacts/ffmpeg_1697113881276/_build_env/bin/x86_64-conda-linux-gnu-cc --cxx=/home/conda/feedstock_root/build_artifacts/ffmpeg_1697113881276/_build_env/bin/x86_64-conda-linux-gnu-c++ --nm=/home/conda/feedstock_root/build_artifacts/ffmpeg_1697113881276/_build_env/bin/x86_64-conda-linux-gnu-nm --ar=/home/conda/feedstock_root/build_artifacts/ffmpeg_1697113881276/_build_env/bin/x86_64-conda-linux-gnu-ar --disable-doc --disable-openssl --enable-avresample --enable-demuxer=dash --enable-hardcoded-tables --enable-libfreetype --enable-libfontconfig --enable-libopenh264 --enable-gnutls --enable-libmp3lame --enable-libvpx --enable-pthreads --enable-vaapi --enable-gpl --enable-libx264 --enable-libx265 --enable-libaom --enable-libsvtav1 --enable-libxml2 --enable-pic --enable-shared --disable-static --enable-version3 --enable-zlib --pkg-config=/home/conda/feedstock_root/build_artifacts/ffmpeg_1697113881276/_build_env/bin/pkg-configlibavutil      56. 70.100 / 56. 70.100libavcodec     58.134.100 / 58.134.100libavformat    58. 76.100 / 58. 76.100libavdevice    58. 13.100 / 58. 13.100libavfilter     7.110.100 /  7.110.100libavresample   4.  0.  0 /  4.  0.  0libswscale      5.  9.100 /  5.  9.100libswresample   3.  9.100 /  3.  9.100libpostproc    55.  9.100 / 55.  9.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...Use -h to get full help or, even better, run 'man ffmpeg'

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022年408真题及答案

2022年计算机408真题 2022年计算机408答案 2022 408真题下载链接 2022 408答案下载链接

Spring AI聊天模型API:轻松构建智能聊天交互

Spring AI聊天模型API:轻松构建智能聊天交互 前言 在当今数字化时代,智能聊天功能已成为众多应用程序提升用户体验、增强交互性的关键要素。Spring AI的聊天模型API为开发者提供了一条便捷通道,能够将强大的AI驱动的聊天完成功能无缝集成到…

Softmax回归与单层感知机对比

(1) 输出形式 Softmax回归 输出是一个概率分布,通过Softmax函数将线性得分转换为概率: 其中 KK 是类别数,模型同时计算所有类别的概率。 单层感知机 输出是二分类的硬决策(如0/1或1): 无概率解释&#x…

【React】Hooks 解锁外部状态安全订阅 useSyncExternalStore 应用与最佳实践

一、背景 useSyncExternalStore 是 React 18 引入的一个 Hook;用于从外部存储(例如状态管理库、浏览器 API 等)获取状态并在组件中同步显示。这对于需要跟踪外部状态的应用非常有用。 二、场景 订阅外部 store 例如(redux,mobx,Zustand,jo…

Dify框架面试内容整理-如何评估基于Dify开发的AI应用的效果?

评估基于 Dify 开发的 AI 应用效果,需要从 用户体验、技术性能 与 业务价值 三个层面综合衡量。以下是详细的评估框架,涵盖三个关键点: 用户反馈与满意度

Linux 系统下VS Code python环境配置!

Anaconda安装: 在 Linux 系统中安装下载好的 Anaconda3-2024.10-1-Linux-x86_64.sh,可按以下步骤操作: 1. 赋予安装脚本执行权限 打开终端,切换到安装包所在目录(假设在 software 文件夹中),…

项目实战-基于信号处理与SVM机器学习的声音情感识别系统

目录 一.背景描述 二.理论部分 三.程序设计 编程思路 流程图 1.信号部分 创建数据 generate_samples.py 头文件 生成函数 generate_emotion_sample 传入参数 存储路径 生成参数 创建基础正弦波信号 调制基础正弦波 对于愤怒可以增加噪声 归一化信号 存储 主函…

虚幻引擎作者采访

1万小时编程_哔哩哔哩_bilibili https://www.youtube.com/watch?v477qF6QNSvc 提姆斯温尼是一位传奇性的视频游戏程序员,Epic Games 的创始人兼首席执行官。 该公司开发了虚幻引擎、堡垒之夜、战争机器、虚幻竞技场等许多开创性和有影响力的视频游戏。 他哥哥…

如何限制pod 进程/线程数量?

在 Kubernetes 中限制 Pod 的 进程数(PID 数量) 和 线程数,需要结合 Linux cgroup 控制 和 容器运行时配置。以下是具体方法和示例: 一、限制进程数(PID 数量) 1. 通过 pids cgroup 控制器限制 原理&…

使用 Hugging Face 镜像站快速下载大模型

在国内使用 Hugging Face 下载模型时,经常遇到连接慢、断点续传失败等问题。本文记录一个稳定、快速下载模型的命令行脚本,并支持设置模型缓存路径和目标目录,方便后续统一管理。 1. 设置 Hugging Face 镜像站 为了提升国内访问速度&#xf…

原语的使用

1、什么是原语?? 原语( primitive ),是FPGA开发环境所提供的一系列逻辑功能单元。往往与FPGA芯片的厂家精密相连,不同厂家的原语往往不能通用。 2、需要使用原语的情况 一般来说,在进行HDL cod…

大模型核心技术及架构解析

大模型核心技术及架构解析 大语言模型(Large Language Models, LLMs)已成为当前AI领域最重要的技术突破之一。以下是其核心技术和架构的全面分析: 一、核心技术组成 1. 基础架构技术 技术说明代表应用Transformer自注意力机制基础架构GPT, BERTMoE架构混合专家模…

ES6/ES11知识点 续三

rest参数 Rest 参数(Rest Parameters)是 ES6 引入的一个非常实用的特性。它允许函数接受不定数量的参数,并将这些参数作为一个数组存储,从而简化了处理可变参数的代码。 Rest 参数语法 Rest 参数使用 … 语法,紧跟着…

记忆翻牌游戏:认知科学与状态机的交响曲

目录 记忆翻牌游戏:认知科学与状态机的交响曲引言第一章 网格空间拓扑学1.1 自适应网格算法1.2 卡片排布原理第二章 状态机设计2.1 状态跃迁矩阵2.2 时空关联模型第三章 记忆强化机制3.1 认知衰减曲线3.2 注意力热力图第四章 动画引擎设计4.1 翻牌运动方程4.2 粒子反馈系统第五…

STM32外设-GPIO输出(不含复用)

STM32外设-GPIO输出(不含复用) 一,GPIO模式简介1,输入模式2,输出模式3,模拟模式4,复用模式 二,输出模式详解1, 输出类型1,推挽输出:2,…

58认知干货:创业经验分享及企业形式的汇总

机会永远都是留给有眼光、能发现机会的人,而不是留给有准备的人!往往机会就在身边,普罗大众却无法发现,而真正适合创业的人,天然具备这方面的能力。 当然后天的补足也未尝不可:“故常有欲以观其微,常无欲以观其妙。””引用《道德经》 读懂这句话自然便会拥有对商业和…

修复笔记:获取 torch._dynamo 的详细日志信息

一、问题描述 在运行项目时,遇到与 torch._dynamo 相关的报错,并且希望获取更详细的日志信息以便于进一步诊断问题。 二、相关环境变量设置 通过设置环境变量,可以获得更详细的日志信息: set TORCH_LOGSdynamo set TORCHDYNAM…

Spark,Idea中编写Spark程序 2

Idea中编写Spark程序 一、修改pom.xml文件 <build><sourceDirectory>src/main/scala</sourceDirectory><testSourceDirectory>src/test/scala</testSourceDirectory> <!-- 添加必要的插件以打包scala程序--><plugins><plu…

【AI提示词】黑天鹅模型专家

提示说明 详细解释黑天鹅模型的理论背景、定义、分类及其在不同领域的应用。 提示词 # Role: 黑天鹅模型专家## Profile - language: 中文 - description: 详细解释黑天鹅模型的理论背景、定义、分类及其在不同领域的应用 - background: 黑天鹅模型是尼尔斯莫尔提出的理论&a…

ARM Linux 设备树

Linux 设备驱动开发详解&#xff1a;基于最新的Linux 4.0内核, 机械工业出版社, 宋宝华, 2015 1. 设备树的起源 • 背景: ARM架构中大量板级代码冗余&#xff0c;硬编码在mach-xxx目录&#xff0c;设备树&#xff08;Device Tree&#xff09;引入结构化描述硬件。 • 目的: 减…