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

news2024/9/25 17:18:17

前言

本篇博客是基于前两篇关于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

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

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

相关文章

【微信小程序】-- WXML 模板语法 - 事件绑定 -- tap input (十)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

模电学习8. 三极管推挽电路

模电学习8. 三极管推挽电路一、推挽的概念二、三极管基本的推挽电路1. 上N下P型电路(1) 原理图(2) 电流分析2. 上P下N型(1) 原理图(2) 电流分析三、电路仿真分析1. 测试原理图2. 简要分析三、三极管的交越失真2. 处理方式三、三极管推挽电路的缺点一、推挽的概念 在电路中&…

Android性能优化(三)—— 绘制优化

运行的 Android 手机,虽然配置在不断的提升,但是仍然无法和 PC 相比,无法做到 PC 那样拥有超大内存以及高性能的 CPU。因此在开发 Android 应用程序时也不可能无限制的使用 CPU 和内存,如果对 CPU 和 内存使用不当也会造成应用的卡…

Tomcat的部署详解(基于Centos7.9))

文章目录Tomcat的部署1.1 安装jdk1.2、安装Tomcat1.3 Tomcat的目录结构1.4 Tomcat管理Tomcat web管理功能Tomcat配置文件TomcatTomcat:一种web服务器 Tomacat是由Apache推出的一款免费开源的Servlet容器,可实现JavaWeb程序的装载。 Tomcat服务器是一个…

大数据处理各组件概念及作用

一、数据采集: 1.1 Flume集群:数据采集工具,如写脚本将不同源端的数据采集后进行数据存储,或推送至Kafka等; 1.2 FTP集群:文件传输工具; 1.3 Kafka集群:消息队列,未避免…

UEFI启动的七阶段笔记

研究起点是CPU收到ResetVector信号后,开始执行第一行代码,一直到计算机关机/重启/崩溃,被划分为七个不同阶段。 1. SEC安全阶段 最早开始运行的固件代码,很大部分是汇编语言开发的。 主要负责四件事: 处理平台所有的…

纯手动搭建大数据集群架构_记录007_搭建Zookeeper3.5.7集群_集群配置_集群脚本---大数据之Hadoop3.x工作笔记0168

然后我们来搭建一下zookeeper集群,这个集群,以后不管是搭建Hadoop高可用,还是nifi集群,还是 hive 集群,hbase集群,spark集群,kettle集群,sqoop集群,都是基础 [root@hadoop122 ~]# cd /opt/software/ [root@hadoop122 software]# ll 总用量 479040 -rw-r--r--. 1 root root 9…

时间颗粒度选择(通过选择时间范围和颗粒度展示选项)

<template><div><el-time-selectplaceholder"起始时间"v-model"startTime":picker-options"startPickerOptions"change"changeStartTime"></el-time-select><el-time-selectplaceholder"结束时间&quo…

【Python】python深拷贝与浅拷贝详解(必须掌握)

深拷贝和浅拷贝是python必须要掌握的内容&#xff0c;无论你是面试开发、测试、运维等职位&#xff0c;只要是python&#xff0c;深拷贝与浅拷贝是面试官常问的一个重要知识点。 &#xff08;关注“测试开发自动化” 弓中皓&#xff0c;获取更多学习内容&#xff09; 文章目录一…

软件测试如何进行需求分析,你真的学会了吗?

目录 前言 从宏观的角度看需求文档 从细节的角度看需求文档 1&#xff09;结构化项目流程 2&#xff09;确认影响模块 3&#xff09;考量综合因素 需求的测试成本与质量风险 总结感谢每一个认真阅读我文章的人&#xff01;&#xff01;&#xff01; 重点&#xff1a;配…

Win11安卓应用自动化测试的准备

前言 APP的自动化测试&#xff0c;前提从ADB连接设备&#xff0c;启动APK应用开始。Win 11自带的WSA的APP的测试&#xff0c;要完全自动化&#xff0c;需要解决几个问题。 1、 启动WSA 此项有两步&#xff1a; i 启动WSA服务 Python程序来启动服务&#xff0c;可以直接调用…

DP1621国产LCD驱动芯片兼容替代HT1621B

目录DP1621简介DP1621芯片特性DP1621简介 DP1621是点阵式存储映射的LCD驱动器芯片&#xff0c;可支持最大128点&#xff08;32SEG * 4COM&#xff09;的 LCD屏&#xff0c;也支持2COM和3COM的LCD屏。单片机可通过3/4个通信脚配置显示参数和发送显示数据&#xff0c;也可通过指…

jmeter基本使用

jmeter基本使用 1.jemeter基本介绍 Jmeter 是什么 Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具&#xff0c;用于对软件做压力测 试JMeter 可用于 Web 应用测试&#xff0c;后来扩展到了其他测试领域具体来说, Jmeter 可以测试静态和动态资源&#xff0c;比如…

C语言Switch语句用法

C switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case&#xff0c;且被测试的变量会对每个 switch case 进行检查。 语法 C 语言中 switch 语句的语法&#xff1a; switch(expression){case constant-expression :statement(s);break;…

论索引的重要性

开篇小测验下面这样一个小SQL 你该怎么样添加最优索引两个表上现在只有聚集索引bigproduct 表上已经有聚集索引 ProductIDbigtransactionhistory 表上已经有聚集索引 TransactionID你是否一眼就能看出来呢&#xff1f;答案将在文章中逐步揭晓~~~简单粗暴的添加索引首先我们看一…

企业如何做好员工安全意识提升

背景&#xff1a; 近年来随着网络安全政策、技术的不断发展&#xff0c;国内企业对于安全的重视程度越来越高&#xff0c;安全建设投入力度越来越大&#xff0c;安全防御能力得到了明显的提升。然而&#xff0c;企业面临一个尴尬的问题就是&#xff0c;企业即使做了很多安全防…

Java还值得选择吗?

自1995年Java问世&#xff0c;到2023年已经差不多存在了28年。作为高级编程语言&#xff0c;他的生命周期相比很多编程语言都长&#xff0c;也见证了很多编程语言的辉煌时刻&#xff0c;不过Java始终都是名列前茅。 Java的主要优势在于其一次编写、随处运行。简单来讲&#xf…

185、【栈与队列】leetcode ——496. 下一个更大元素 I:单调栈-哈希表(C++版本)

题目描述 原题链接&#xff1a;496. 下一个更大元素 I 解题思路 本题与 739. 每日温度 的区别在于&#xff0c;需要先通过让nums1与nums2判定出为想等元素后&#xff0c;再去找nums2中更大的数。 因此&#xff0c;第一步需要找到想等数&#xff0c;第二步需要找到大于的数。…

快手电商新增商品信息诊断规则,对商家有何影响?

1、2022年快手短剧日活跃用户达2.6亿 新榜讯 近日&#xff0c;快手数据显示&#xff0c;2022年快手短剧日活跃用户达2.6亿&#xff0c;现在的付费用户数对比2022年4月增长超过480%&#xff0c;快手已经是最大的短剧消费市场。此外&#xff0c;2023年快手小游戏日活跃用户峰值超…

【Go】基于telegraf进行自定义插件开发(二)

基于telegraf进行自定义插件开发&#xff08;二&#xff09;前言正文设计开发过程单个服务的处理结构体同时定义了string和数值类型适配本机服务或者多个ip来源程序打包结语前言 书接上会&#xff0c;这次记录一下我基于telegraf进行的hdfs监控组件的开发工作&#xff0c;这其…