当前位置: 首页 > news >正文

ubuntu下用i686-w64-mingw32交叉编译支持SDL、Openssl的ffmpeg库

前言

本篇博客是基于前两篇关于ffmpeg交叉编译下,进行再次编译操作。ubuntu下ffmpeg的交叉编译环境搭建可以参看以下我的这篇博客:https://blog.csdn.net/linyibin_123/article/details/108759367 ; ubuntu下交叉编译openssl及交叉编译支持openssl的ffmpeg库可以参看另外一篇我的博客:https://blog.csdn.net/linyibin_123/article/details/126301301 。

一、SDL库下载

1.访问官网:https://github.com/libsdl-org/SDL/releases/tag/release-2.26.3,

在这里插入图片描述

2.拷贝到ubuntu下解压后:

在这里插入图片描述
以上就是编译好的SDL库,无需额外进行编译SDL

二、交叉编译支持SDL库的ffmpeg

1.切换到ffmpeg目录下,执行配置命令:

./configure --enable-static --enable-shared --enable-version3 --enable-gpl --enable-nonfree --enable-openssl --enable-protocols --enable-protocol=https --extra-cflags=“-I/home/ipc/ffmpeg/ffmpeg-421/openssl-build/include” --extra-ldflags=“-L/home/ipc/ffmpeg/ffmpeg-421/openssl-build/lib” --disable-pthreads --enable-w32threads --enable-cross-compile --target-os=mingw32 --arch=x86 --enable-small --prefix=/home/ipc/ffmpeg/ffmpeg-421/opensdk/ffmpeg-build --extra-version=avbuild --disable-doc --enable-runtime-cpudetect --disable-ptx-compression --enable-mediafoundation --disable-vulkan --disable-postproc --disable-htmlpages --cross-prefix=i686-w64-mingw32- --disable-indevs --disable-outdevs --disable-debug --disable-filter=scale_cuda --enable-ffplay --extra-libs=-lSDL2 --extra-cflags=“-I/home/ipc/ffmpeg/ffmpeg-421/SDL2-2.26.3/i686-w64-mingw32/include/SDL2” --extra-ldflags=“-L/home/ipc/ffmpeg/ffmpeg-421/SDL2-2.26.3/i686-w64-mingw32/lib”

注意:openssl与SDL库目录需要改成你自己的
在这里插入图片描述

2.修改config.h 与 config.mak文件

config.h位于ffmpeg根目录, config.mak位于ffmpeg的build目录下,更改CONFIG_FFPLAY与 CONFIG_SDL2如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.编译

依次执行make 、make install 命令

4.执行后生成ffplay.exe

在这里插入图片描述

三、测试ffplay

拷贝ffmpeg生成文件到windows,测试ffplay。

1. ffplay播放:按键控制

播放控制:
逐帧播放 : S ;
向后 / 向前拖动 10 秒 : Left / Right 箭头按钮 ;
向后 / 向前拖动 1 分钟 : Down / Up 箭头按钮 ;
暂停播放 : P , 空格 ; 按下 P 或 空格键 , 可以暂停播放 ;
停止播放 : Q , Esc ; 开始播放后 , 按下 Q 或 Esc 按键 , 可以退出播放 ;
全屏切换 : F 按键可以切换全屏 ; 鼠标左键双击 也可以进行全屏切换 ;

音量控制:
静音 : M 键可切换 静音 / 非静音 状态 ;
减少音量 : 9 或 / 按键 , 减少音量 ;
增加音量 : 0 或 * 按键 , 增加音量 ;

2. ffplay播放:命令行控制

1)播放网络流
ffplay rtsp://admin:xmsx1234@192.168.8.123:554/main

2)播放本地文件
ffplay demo.mp4

3)旋转与翻转
旋转:ffplay -i demo.mp4 -vf transpose=1 //2、3
翻转: ffplay demo.mp4 -vf hflip //水平翻转
ffplay demo.mp4 -vf vflip //垂直翻转

4)变速播放
音频变速:ffplay -i demo.mp4 -af atempo=2
视频变速:ffplay -i demo.mp4 -vf setpts=PTS/2
音视频变速:ffplay -i demo.mp4 -vf setpts=PTS/2 -af atempo=2
5)循环播放:
ffplaydemo.mp4 -loop 3 //循环播放3遍
6)播放完成自动退出
ffplay -autoexit demo.mp4

7)指定宽高播放
ffplay -x 320 -y 240 demo.mp4

8)指定窗口标题
ffplay -window_title “test-rtsp” rtsp://admin:xmsx1234@192.168.8.123:554/main

9)音视频同步方式
ffplay demo.mp4 -sync audio // 视频同步音频播放
ffplay demo.mp4 -sync video //音频同步视频播放
ffplay demo.mp4 -sync ext //以外部时钟为基准,音视频同步播放

10)强制解码器
ffplay -vcodec h264 demo.mp4 // 强制h264解码器

11)YUV文件播放
ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 320x240.yuv

12)RGB文件播放
ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb

13)PCM文件播放
ffplay -ar 48000 -ac 2 -f f32le demo.pcm//采样率48000 通道数2 采样格式f32le

3. ffplay测试结果展示:

在这里插入图片描述

四、ffmpeg库下载

下载链接:https://download.csdn.net/download/linyibin_123/87506252

相关文章:

ubuntu下用i686-w64-mingw32交叉编译支持SDL、Openssl的ffmpeg库

前言 本篇博客是基于前两篇关于ffmpeg交叉编译下,进行再次编译操作。ubuntu下ffmpeg的交叉编译环境搭建可以参看以下我的这篇博客:https://blog.csdn.net/linyibin_123/article/details/108759367 ; ubuntu下交叉编译openssl及交叉编译支持o…...

对IDEA中断点Suspend 属性理解

suspend的类型分为 1、ALL:有线程进入该断点时,暂停所有线程 2、Thread:有线程进入该断点时,只暂停该线程 讨论下不同线程在同一时间段都遇到断点时,idea的处理方法。假如在执行时间上,thread1会先进入断…...

IM即时通讯开发如何解决大量离线消息导致客户端卡顿的

大部分做后端开发的朋友,都在开发接口。客户端或浏览器h5通过HTTP请求到我们后端的Controller接口,后端查数据库等返回JSON给客户端。大家都知道,HTTP协议有短连接、无状态、三次握手四次挥手等特点。而像游戏、实时通信等业务反而很不适合用…...

【软件测试】测试老鸟的迷途,进军高级自动化测试测试......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 很多从业几年的选手…...

HMM(隐马尔科夫模型)-理论补充2

目录 一.大数定理 二.监督学习方法 1.初始概率 2.转移概率 3.观测概率 三.Baum-Welch算法 1.EM算法整体框架 2. Baum-Welch算法 3.EM过程 4.极大化 5.初始状态概率 6.转移概率和观测概率 四.预测算法 1.预测的近似算法 2.Viterbi算法 1.定义 2. 递推&#xff1…...

【分布式系统】MinIO之Multi-Node Multi-Drive架构分析

文章目录架构分析节点资源硬盘资源服务安装安装步骤创建系统服务新建用户和用户组创建环境变量启动服务负载均衡代码集成注意最近打算使用MinIO替代原来使用的FastDFS,所以一直在学习MinIO的知识。这篇文章是基于MinIO多节点多驱动的部署进行研究。 架构分析 节点资…...

【无标题】(2019)NOC编程猫创新编程复赛小学组真题含参考

(2019)NOC编程猫创新编程复赛小学组最后6道大题。前10道是选择填空题 略。 这道题是绘图题,没什么难度,大家绘制这2个正十边形要注意:一是不要超出舞台;二是这2个正十边形不要相交。 这里就不给出具体程序了…...

【尚硅谷MySQL入门到高级-宋红康】数据库概述

1、为什么要使用数据库 数据的持久化 2、数据库与数据库管理系统 2.1 数据库的相关概念 2.2 数据库与数据库管理系统的关系 3、 MySQL介绍 MySQL从5.7版本直接跳跃发布了8.0版本 ,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强&a…...

SpringBoot集成Redis并实现数据缓存

应用场景 存放Token、存放用户信息或字典等需要频繁访问数据库获取但不希望频繁访问增加数据库压力且变化不频繁的数据。 集成步骤 1. 新建 Maven 项目并引入 redis 依赖【部分框架有可能已经集成&#xff0c;会导致依赖文件有差异】 <dependency><groupId>org…...

SpringBoot配置文件(properties yml)

查看官网更多系统配置项&#xff1a;https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties 1.配置⽂件作⽤ 整个项⽬中所有重要的数据都是在配置⽂件中配置的&#xff0c;⽐如&#xff1a;数据库的连接信息&am…...

css 画图之质感盒子

前言 css 众所周知可以做很多的事情&#xff0c;比如&#xff1a;界面效果、特效、独特的样式等。今天给各位朋友带来的是以box-shadow来画一个很有质感效果的一个盒子。 之前在网上冲浪的时候&#xff0c;发现了这样的一个效果&#xff0c;所以来记录一下。 下面是实现后的…...

面了一个月,终于让我总结出了这份最详细的接口测试面试题

目录 1、你们公司是如何做接口测试的&#xff1f; 2、什么时候开展接⼝测试&#xff1f; 3、接⼝测试和UI测试的工作是否重复&#xff1f; 4、接口测试框架怎么搭建&#xff1f; 5、接⼝之间有依赖时怎么处理&#xff1f; 6、如何判断接⼝测试的结果&#xff08;成功或失败&a…...

{新}【java开发环境安装】完整工作环境安装配置

公司新发了一台红米笔记本&#xff0c;打算用新的笔记本&#xff0c;开启自己新的工作旅程&#xff0c;其中把做个的事都记录一边&#xff0c;以便实现&#xff0c;听、读、视频图像、讨论、实践、教人的一个学习过程。 一、Java开发环境安装 找到安装包下载&#xff1b;在官…...

Python|每日一练|数组|数学|图算法|字符串|动态规划|单选记录:加一|迷宫问题|扰乱字符串

1、加一&#xff08;数组&#xff0c;数学&#xff09; 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以…...

MySQL 使用IF判断

mysql判断语句 1、IF 和IFNULL IF(表达式1&#xff0c;表达式2&#xff0c;表达式3); 含义&#xff1a;如果表达式1为true&#xff0c;则返回表达式2的值&#xff0c;否则返回表达式3的值&#xff0c;表达式的值类型可以为数字或字符串 例&#xff1a;判断对错 SELECT IF(TRUE…...

C++类与对象(上)【详析】

目录1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1访问限定符4.2封装5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小8.this关键字如果说我们对C的初步认识&#xff0c;是觉得C是对C语言不足之处的进行修补&#xff0c;在认识完类…...

AIR系列|板载LED|gpio引脚选择|GPIO|流水灯|LuatOS-SOC接口|官方demo|学习(20-1):GPIO库基础

AIR系列各型号开发板板载LED对应管脚及GPIO控制代码 AIR103&#xff1a; rtos_bsp "AIR103" then -- Air103开发板LED引脚编号--return pin.PB26, pin.PB25, pin.PB24return 42,41,40 AIR105&#xff1a; rtos_bsp "AIR105" then -- Air105开发板LED引…...

MySQL数据库中的函数怎样使用?

函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着&#xff0c;这一段程序或代码在MySQL中已经给我们提供了&#xff0c;我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么&#xff0c;函数到底在哪儿使用呢?我们先来看两个场景&…...

命名空间的使用大全

概述 在C中&#xff0c;我们会使用变量、常量、函数、类、对象、结构体等各种元素。随着工程越来越庞大&#xff0c;代表这些元素的标识符冲突的概率也越来越大。为了解决标识符命名冲突的问题&#xff0c;C标准在1995年引入了关键字namespace&#xff0c;也叫做命名空间。使用…...

Redisson分布式锁和同步器详解-官方原版

一、锁定基于Redis的Java分布式可重入锁对象&#xff0c;并实现了锁接口。如果获取锁的Redisson实例崩溃&#xff0c;则此类锁可能会在获取状态下永久挂起。为了避免这种Redisson维护锁看门狗&#xff0c;当锁持有者Redisson实例处于活动状态时&#xff0c;它会延长锁的到期时间…...

四川南充纺织减速机升级:从传统织机到智能传动

千年绸都的"心脏"正在换代南充&#xff0c;古称果州&#xff0c;素有"中国绸都"之美誉。从汉代丝绸之路的起点之一&#xff0c;到如今四川省重要的纺织产业基地&#xff0c;南充纺织业绵延两千余年。然而&#xff0c;支撑这一产业蓬勃发展的&#xff0c;不…...

LangChain 第一课:核心架构与组件(前端友好版)

一、先一句话搞懂&#xff1a;LangChain 到底是什么&#xff1f;LangChain 是一个大模型应用开发框架&#xff0c;专门帮你把「大模型、RAG、Agent、工具调用」这些功能&#xff0c;像搭积木一样快速拼起来&#xff0c;不用从零写复杂逻辑。前端类比秒懂你写 Vue 要用到 Vue、V…...

如何在Windows上使用iperf3进行专业级网络性能测试:完整指南

如何在Windows上使用iperf3进行专业级网络性能测试&#xff1a;完整指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds iperf3作为专业的网络性能基…...

LTspice高级玩法:用行为电压源模拟传感器信号,测试你的嵌入式算法

LTspice高级玩法&#xff1a;用行为电压源模拟传感器信号&#xff0c;测试你的嵌入式算法 在嵌入式系统开发中&#xff0c;传感器算法的验证往往是一个令人头疼的问题。真实的物理传感器不仅成本高昂&#xff0c;而且受环境因素影响大&#xff0c;重复测试困难。想象一下&#…...

Sass迁移实战:告别node-sass,拥抱现代前端工具链

1. 为什么前端开发者都在抛弃node-sass&#xff1f; 最近两年&#xff0c;但凡你打开一个前端项目的package.json&#xff0c;十有八九会发现依赖项里已经找不到node-sass的身影了。这不是巧合&#xff0c;而是整个前端生态的一次集体升级。作为一个经历过多次技术栈迁移的老前…...

终极PHP代码规范指南:让你的代码更易读、可维护的10个核心技巧

终极PHP代码规范指南&#xff1a;让你的代码更易读、可维护的10个核心技巧 【免费下载链接】clean-code-php :bathtub: Clean Code concepts adapted for PHP 项目地址: https://gitcode.com/gh_mirrors/cl/clean-code-php clean-code-php是一个将Robert C. Martin的《C…...

Kubernetes_Pod调度策略与资源管理深度实战

Kubernetes Pod调度策略与资源管理深度实战:从原理到生产级配置指南 🎯 适用人群:有Docker基础的开发者、DevOps工程师、后端架构师 📖 阅读时间:约25分钟 | 代码实战:50+配置示例 💡 核心价值:掌握K8s Pod调度的核心机制,避免生产环境中的资源管理陷阱 前言:为什…...

使用Nodejs快速接入Taotoken实现多模型对话功能

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Node.js快速接入Taotoken实现多模型对话功能 基础教程类&#xff0c;面向前端或全栈开发者&#xff0c;讲解在Node.js项目中如…...

2026翅片管散热器哪家好榜单揭晓 工业烘干供暖靠谱品牌

一、引言&#xff1a;工业采暖烘干刚需&#xff0c;翅片管散热器成核心工业烘干与供暖领域&#xff0c;翅片管散热器凭借高效换热、耐用抗造、适配性强等优势&#xff0c;成为厂房采暖、物料烘干、公共空间控温的核心设备。随着工业节能升级与高端场景需求增长&#xff0c;市场…...

在C的基础上入门C++——第一个C++程序(学习笔记+个人心得)

基础程序 #include <iostream> using namespace std;int main() {cout << "hello world" << endl;return 0; }main函数 main函数是程序的入口&#xff0c;不管有多少代码都是从main函数开始的&#xff0c;main函数也被叫做主函数&#xff0c;mai…...