Linux----Mplayer音视频库的移植
想要播放视频音乐就得移植相关库到板子上
Mplayer移植需要依赖以下源文件:(从官网获取或者网上)
1、zlib-1.2.3.tar.gz :通用的内存空间的压缩库。
2、libpng-1.2.57.tar.gz :png格式图片的压缩或解压库
3、Jpegsrc.v9b.tar.gz : jpeg格式图片的压缩或解压库
4、alsa-lib-1.1.0.tar.bz2 :alsa音频库--处理声音的
5、fftw-3.3.4.tar.gz: 傅里叶变换库--算法库
6、MPlayer-1.3.0.tar.gz:Mplayer音视频播放源码
//1、zlib-1.2.3.tar.gz :通用的内存空间的压缩库。
以下三步:(其他5个库也一样)
①configure配置:(在ubuntu上 该解压后的库的目录路径下的终端上运行以下代码)
CC=aarch64-linux-gnu-gcc \
./configure --prefix=/home/edu118/rk3399/rk/xiangmu/install \
--libdir=/home/edu118/rk3399/rk/xiangmu/install/lib \
--includedir=/home/edu118/rk3399/rk/xiangmu/install/include \
--shared
②配置完后再make -j8编译一下
③再make install -j8 运行一下动态文件
//2、libpng-1.2.57.tar.gz :png格式图片的压缩或解压库
./configure --prefix=/home/edu118/rk3399/rk/xiangmu/install \
CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu \
--enable-shared --enable-static \
CPPFLAGS=-I/home/edu118/rk3399/rk/xiangmu/install/include \
LDFLAGS=-L/home/edu118/rk3399/rk/xiangmu/install/lib \
LIBS=-lz
//3、libjpeg源码包移植
./configure --prefix=/home/edu118/rk3399/rk/xiangmu/install \
CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu \
--enable-shared --enable-static
//4、fftw源码包移植 ---傅里叶变换算法
./configure --prefix=/home/edu118/rk3399/rk/xiangmu/install \
CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu \
--enable-shared --enable-static
//5、alsa-lib源码包移植(音频库)
./configure --prefix=/home/edu118/rk3399/rk/xiangmu/install \
CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu \
--disable-python
//6、Mplayer源码包移植---开发--需要使用的对应库API函数
./configure --prefix=/home/edu118/rk3399/rk/xiangmu/install \
--cc=aarch64-linux-gnu-gcc --host-cc=gcc \
--target=aarch64-linux-gnu \
--enable-cross-compile --enable-fbdev \
--enable-png --enable-jpeg --enable-alsa --enable-ossaudio \
--disable-x264-lavc --disable-freetype --disable-fontconfig \
--extra-cflags="-I/home/edu118/rk3399/rk/xiangmu/install/include -DHAVE_ARMV8=0" \
--extra-ldflags="-L/home/edu118/rk3399/rk/xiangmu/install/lib/" \
--extra-libs="-lasound -ljpeg -lpng" 2>&1 |tee logfile
//configure配置好了后,make -j8 编译的时候出现了错误,需要修改config.mak文件,删除第33行的 ‘ -s '
Mplayer播放(在超级终端运行)
- mplayer播放器简单启动测试(第一种方法)
- 在开发板串口终端进行播放视频测试
参数说明:
rotate=1 参数表示把屏旋转90度,可根据播放的视频尺寸关系决定是否旋转
-vo fbdev2 表示指定使用framebuffer设备显示---就是LCD设备/dev/fb0(屏幕的节点)
-ao alsa 表示使用 alsa 子系统输出声音
以下是在开发板串口终端执行的启动播放器命令(哪一条都可以),请直接复制粘贴到串口终端上执行:
下面的命令,将目前所遇到的所有情况,全部列举出来。
1)旋转90度,注意,旋转后原来的LCD屏w和h就调换了。
mplayer -vo fbdev2 -ao alsa -vf rotate=1 xm.mpg
转换完之后,x轴会变成y轴
2)放置视频在屏幕的位置---把视频放到屏幕的任意位置
mplayer -vo fbdev2 -ao alsa -geometry 0:0 xm.mpg
3)然后指定 x,y 尺寸播放视频,随意修改尺寸
mplayer -vo fbdev2 -ao alsa -zoom -x 800 -y 1280 xm.mpg
4)等比例比例缩放
mplayer -slave -quiet -vo fbdev2 -ao alsa -vf scale=480:-3 -sws 9 video.mp4
参数:说明等比例比例缩放
-vf scale=480:-3 -sws 9 :变换至480像素宽,高度按比例缩放
mplayer -vo fbdev2 -ao alsa -geometry 0:0 -vf scale=200:-3 -sws 9 qnzl.mp4 |
任意比例播放:
注意:
可以在ubuntu下创两个文件
build文件下:放解压后的库的源码
Install文件下:放配置安装的路径 所以的动态库都放在一起
然后install文件夹下创建 lib include文件 编译生成的头文件放include里
CPPFLAGS=-I/home/huzhiyuan/work/ddd/Mplayer_install/include \
LDFLAGS=-L/home/huzhiyuan/work/ddd/Mplayer_install/lib \
l---链接 z---zlib这个库 LIBS---是Makefile里面的变量
最后将bin lib 文件发送给板子(超级终端上)
相关文章:

Linux----Mplayer音视频库的移植
想要播放视频音乐就得移植相关库到板子上 Mplayer移植需要依赖以下源文件:(从官网获取或者网上) 1、zlib-1.2.3.tar.gz :通用的内存空间的压缩库。 2、libpng-1.2.57.tar.gz :png格式图片的压缩或解压库 3、Jpegsrc.v9b.tar.gz : jpeg格式图片的压…...

STM32测测速---编码电机读取速度的计算
1、首先先了解一下计算的公式 速度计算: 轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算: PPR是电机的线数 以GA25-370电机为例。 图片来源:第四节:STM32定时器(4.JGA25-370霍尔编码器…...
【已解决】服务器无法联网与更换镜像源
目录 问题描述: 1.修改网卡的 DNS1 和 DNS2 2.修改DNS列表 3.重启网络服务 4.切换镜像源 4.1备份原镜像源 4.2下载阿里云镜像源 4.3替换无法使用的域名 4.4刷新软件包缓存 4.5其他镜像源 5.阿里云镜像源开发者社区说明 6.阿里云DNS网址 7.DNS域名服务器…...
android11 屏蔽usb通过otg转接口外接鼠标设备
硬件平台:QCS6125 软件平台:Android11 需求:Android设备通过接usb转接线连接鼠标功能屏蔽。 考虑到屏蔽的层面可以从两个层面去做,一个是驱动层面不识别,一个就是Android系统层面不识别加载,本篇只讲后者。…...

HAL库源码移植与使用之RTC时钟
实时时钟(Real Time Clock,RTC),本质是一个计数器,计数频率常为秒,专门用来记录时间。 普通定时器无法掉电运行!但RTC可由VBAT备用电源供电,断电不断时 这里讲F1系列的RTC 可以产生三个中断信号ÿ…...

GIT命令学习 一
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️运维工程师的职责:监…...
VS+QT 打包可执行文件.exe
切换成release版本,同时更改项目属性中release配置下的各个属性,确保匹配 重新生成解决方案,将生成的.exe复制到一个空白文件夹中 执行: cd D:\QT\5.12.10\msvc2015_64\binwindeployqt C:\Users\DELL\Desktop\serials\MainWind…...
Android笔试面试题AI答之Activity(2)
答案仅供参考,大部分为文心一言AI作答 目录 1. 请介绍一下Activity 生命周期?1. 完全生命周期2. 可见生命周期3. 前台生命周期4. 配置更改5. 特殊场景 2. 请介绍一下横竖屏切换时Activity的生命周期变化?1.默认行为(未设置androi…...
来自Transformers的双向编码器表示(BERT) 通俗解释
来自Transformers的双向编码器表示(BERT) 目录 1. 从上下文无关到上下文敏感2. 从特定于任务到不可知任务3. BERT:把两个最好的结合起来4. BERT的输入表示5. 掩蔽语言模型(Masked Language Modeling)6. 下一句预测&am…...
代码随想录第十六天|贪心算法(2)
目录 LeetCode 134. 加油站 LeetCode 135. 分发糖果 LeetCode 860. 柠檬水找零 LeetCode 406. 根据身高重建队列 LeetCode 452. 用最少数量的箭引爆气球 LeetCode 435. 无重叠区间 LeetCode 763. 划分字母区间 LeetCode 56. 合并区间 LeetCode 738. 单调递增的数字 总…...

花几千上万学习Java,真没必要!(二十二)
1、final关键字: 测试代码1: package finaltest.com;public class FinalBasicDemo {public static void main(String[] args) {// final修饰基本数据类型变量final int number 5;// 尝试修改number的值,这将导致编译错误// number 10; // …...

在RK3568上如何烧录MAC?
这里我们用RKDevInfoWriteTool 1.1.4版本 下载地址:https://pan.baidu.com/s/1Y5uNhkyn7D_CjdT98GrlWA?pwdhm30 提 取 码:hm30 烧录过程: 1. 解压RKDevInfoWriteTool_Setup_V1.4_210527.7z 进入解压目录,双击运行RKDevInfo…...

1.30、基于卷积神经网络的手写数字旋转角度预测(matlab)
1、卷积神经网络的手写数字旋转角度预测原理及流程 基于卷积神经网络的手写数字旋转角度预测是一个常见的计算机视觉问题。在这种情况下,我们可以通过构建一个卷积神经网络(Convolutional Neural Network,CNN)来实现该任务。以下…...
Windows如何使用Python的sphinx
在Windows上使用Python的Sphinx进行文档渲染和呈现,可以遵循以下步骤进行操作: 安装Python:首先,确保你的Windows系统上已经安装了Python。你可以从Python的官方网站下载并安装适合你系统(32位或64位&…...
C++ STL nth_element 用法
一:功能 将一个序列分为两组,前一组元素都小于*nth,后一组元素都大于*nth, 并且确保第 nth 个位置就是排序之后所处的位置。即该位置的元素是该序列中第nth小的数。 二:用法 #include <vector> #include <a…...

【PostgreSQL教程】PostgreSQL 选择数据库
博主介绍:✌全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…...
C# —— HashTable
集合collections命名空间,专门进行一系列的数据存储和检索的类,主要包含了:堆栈、和队列、list、ArrayList、数组 HashTable 字典 storeList 排序列表等类 Array 数组 长度固定, 类型固定 通过索引值来进行访问 ArrayList动态数组,…...
LeetCode 第407场周赛个人题解
目录 100372. 使两个整数相等的位更改次数 原题链接 思路分析 AC代码 100335. 字符串元音游戏 原题链接 思路分析 AC代码 100360. 将 1 移动到末尾的最大操作次数 原题链接 思路分析 AC代码 100329. 使数组等于目标数组所需的最少操作次数 原题链接 思路分析 A…...

使用Django框架实现音频上传功能
数据库设计(models.py) class Music(models.Model):""" 音乐 """name models.CharField(verbose_name"音乐名字", max_length32)singer models.CharField(verbose_name"歌手", max_length32)# 本质…...

[路由器]IP-MAC的绑定与取消
背景:当公司的网络不想与外部人员进行共享,可以在路由器页面配置IP-MAC的绑定,让公司内部人员的手机和电脑的mac,才能接入到公司。第一步:在ARP防护中,启动IP-MAC绑定选项,必须启动仅允许IP-MAC…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...