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

news/2024/4/24 8:05:25/文章来源:https://blog.csdn.net/linyibin_123/article/details/129242511

前言

本篇博客是基于前两篇关于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.luyixian.cn/news_show_74831.aspx

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

相关文章

20分钟6个示例4个动图教你学会Async Hooks

序幕 async_hooks模块提供了一个全新的功能世界,但作为 Node.js 爱好者,我最感兴趣的是,它可以让您轻松了解我们在应用程序中经常执行的一些任务的幕后情况。 在本文中,我将尝试借助async_hooks模块来演示和解释一个典型的异步资源的生命周期。 Async Hooks API 简介 as…

OSWatcher.sh脚本说明

OSWatcher.sh脚本位于oswbb目录下(Oracle 19c数据库中脚本的路径是: /u01/app/oracle/product/19.0.0/dbhome_1/suptools/tfa/release/tfa_home/ext/oswbb/),由脚本startOSWbb.sh和stopOSWbb.sh来调用启动和停止它。 1. startOSW…

《数据库系统概论》学习笔记——第七章 数据库设计

教材为数据库系统概论第五版(王珊) 这一章概念比较多。最重点就是7.4节。 7.1 数据库设计概述 数据库设计定义: 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构&#x…

C#窗口介绍

窗口就是打开程序我们所面对的一个面板,里面可以添加各种控件,如下图所示,我们可以在属性栏设置其标题名称、图标、大小等。图1 窗口图 图2 设置面板 图3 设置双击标题框,会生成Load函数,也可以到事件里面去找Load函数…

线上监控诊断神器arthas

目录 什么是arthas 常用命令列表 1、dashboard仪表盘 2、heapdump dumpJAVA堆栈快照 3、jvm 4、thread 5、memory 官方文档 安装使用 1、云安装arthas 2、获取需要监控进程ID 3、运行arthas 4、进入仪表盘 5、其他命令使用查看官方文档 什么是arthas arthas是阿…

《嵌入式应用开发》实验一、开发环境搭建与布局(上)

1. 搭建开发环境 去官网(https://developer.android.google.cn/studio)下载 Android Studio。 安装SDK(默认Android 7.0即可) 全局 gradle 镜像配置 在用户主目录下的 .gradle 文件夹下面新建文件 init.gradle,内容为…

web服务器(1)

阻塞和非阻塞、同步和异步 网络IO阶段一:数据就绪 操作系统,tcp接受缓冲区 阻塞:调用IO方法的线程进入阻塞状态 非阻塞:不会改变线程的状态,通过返回值判断 网络IO阶段二:数据读写 应用程序 同步…

新闻稿的制作流程:从确定新闻稿目的到将其分发给媒体

对于任何希望向媒体和公众传达具有新闻价值的信息的组织来说,新闻稿都是必不可少的工具。精心制作的新闻稿可以帮助您宣传您的业务、产品或服务,并可以产生有价值的媒体报道。在本文中,我们将指导您完成新闻稿的制作过程,从确定新…

社区1月月报|OceanBase 4.1 即将发版,哪些功能将会更新?

我们每个月都会和大家展开一次社区进展的汇报沟通会,希望通过更多的互动交流让OceanBase 开源社区更加透明,实现信息共享,也希望能营造更加轻松的氛围,为大家答疑解惑,让大家畅所欲言。如果您对我们的社区有任何建议&a…

C#多窗口切换

多窗口切换【功能目标】1、实现多窗口切换(Panel)2、动态生成窗口内文本框以及标签(重点)3、改变文本框内容【效果图】【代码详解】1、多窗口切换如要实现多窗口切换,需要用到Panel,对于这个控件不熟悉的可…

13-mvc框架原理与实现方式

1、mvc原理 # mvc 与框架## 1.mvc 是什么1. m:model,模型(即数据来源),主要是针对数据库操作 2. v:view,视图,html 页面。视图由一个一个模板构成(模板是视图的一个具体展现或载体,视图是模板的一个抽象) 3. c:controller,控制器,用于mv之间的数据交互## 2.最简单的 mvc 就是一…

锁相环的组成和原理及应用

一.锁相环的基本组成 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利用锁相环路就可以实现这个目的。 锁相环路是一种反馈控制电路,简称锁相环(PLL)。锁相环的特点是:利用外部输入的参考信号控制环路内…

阶段八:服务框架高级(第五章:服务异步通信-高级篇(RabbitMQ高级))

阶段八:服务框架高级(第五章:服务异步通信-高级篇(RabbitMQ高级))Day-第五章:服务异步通信-高级篇(RabbitMQ高级)0.学习目标1.消息可靠性1.1.生产者消息确认1.1.1.修改配…

400G光模块知识大全

400G光模块是目前高速传输领域中的一种先进产品,被广泛应用于高性能数据中心、通信网络、大规模计算、云计算等领域。本文将从400G光模块的定义、技术、产品型号、应用场景以及未来发展方向进行详细介绍。一、什么是400G光模块?400G光模块是指传输速率达…

Android zygote进程启动流程

zygote启动过程中涉及到以下模块: app_processzygote USAPsocketFileDescriptor (FD) AndroidRuntimeAppRuntime (定义于app_process模块,继承自AndroidRuntime。) init进程启动zygote进程: #init.zygote32_64.rc s…

前端开发_快应用开发

目录快应用官网真机调试组件组件嵌套问题tab组件list组件web组件css 样式问题[1]选择器[2]盒模型[3]样式布局-弹性布局[4-1]样式切换 - 类名的动态切换[4-2] 样式切换 - 行内样式动态切换[5]background[6]overflow[7]border-radius[8]盒子阴影[9] 单位系统接口[1] 检查某app是否…

redis五种数据结构

redis五种数据结构1. redis 其他相关1.1 redis 的安装1.2 redis 的持久化1.3 redis 配置文件2. redis 常见命令2.1 key2.2 设置 key 的生存时间或过期时间3. redis的5种常见的数据结构3.1 String3.2 list3.3 hash3.4 set3.5 zset(SortedSet(有序集合&…

2023年“网络安全”赛项浙江省金华市选拔赛 任务书

2023年“网络安全”赛项浙江省金华市选拔赛 任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 Windows操作系统渗透测试 任务二 Linux操作系统渗透测试 任务三 网页渗透 任务四 Linux系统…

《爆肝整理》保姆级系列教程python接口自动化(二十四)--unittest断言——中(详解)

简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京的天气,一个是查询 南京为例&#xf…

继电器的工作原理、构成和功能介绍

随着电力应用的不断发展,电气设备已经深入到我们的日常生活中,电气自动化技术大量使用在电力系统和生产型企业中,人们在享受电带来方便的同时要注意用电保护。继电器就是为了保护电路而生的,可以提高电路可靠性,保障用…