百问网全志D1h开发板投屏功能实现

投屏功能实现

D1系列号称点屏神器,不仅能点屏,还能用于投屏。

源码准备

百问网为 【百问网D1h开发板】提供了投屏功能需要使用的源码,直接git下载即可:

git clone https://github.com/DongshanPI/DongshannezhaSTU_DLNA_ScreenProjection.git

下载后的源码目录如下:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中:

  • libupnp是UPNP协议的一个轻量实现库。它最早由英特尔开发并开源,是目前Linux平台最流行的UPNP实现库,其集成了HTTP处理、XML处理、HTTP服务器、线程池等功能。
  • tprender是用于实际投屏处理的应用

源码编译

源码分为两部分进行编译,先编译libupnp得到动态调用库,再编译tprender。

  1. libupnp编译
export TOOLCHAIN_ROOT=~/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702
export PATH=$TOOLCHAIN_ROOT/bin:$PATH

cd DongshannezhaSTU_DLNA_ScreenProjection/libupnp-1.14.12
./configure --host=riscv64-unknown-linux-gnu

make 
mkdir tmp
make install DESTDIR=$(pwd)/tmp/

ls -lh tmp/usr/local/lib

编译安装后的结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. tprender编译
cd DongshannezhaSTU_DLNA_ScreenProjection/tprender

# 设置正确的目录
perl -pi -e 's#/home/book/tina-d1-h#/root/tina-d1-h#g' $(grep -rn /home/book/tina-d1-h * | cut -d ':' -f 1 | uniq)
perl -pi -e 's#/home/book/Allwinner/tprender#'$(pwd)'#g' $(grep -rn /home/book/Allwinner/tprender * | cut -d ':' -f 1 | uniq)
perl -pi -e 's#\\/home\\/book\\/Allwinner\\/tprender#'$(pwd | sed -e 's#/#\\\\/#g')'#g' tags
rm -rf CMakeFiles cmake_install.cmake  CMakeCache.txt tags

# 拷贝动态调用库
cp ../libupnp-1.14.12/tmp/usr/local/lib/libixml.so.11.1.2 libs/libixml.so
cp ../libupnp-1.14.12/tmp/usr/local/lib/libixml.so.11.1.2 libs/libixml.so.11
cp ../libupnp-1.14.12/tmp/usr/local/lib/libupnp.so.17.1.3 libs/libupnp.so
cp ../libupnp-1.14.12/tmp/usr/local/lib/libupnp.so.17.1.3 libs/libupnp.so.17

cmake .
make

需要注意,上面使用perl进行文件内路径替换的操作,需要根据你的实际的文件路径进行处理。

编译结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在tprender已经准备好了,下面就进行开发板上的操作了。

投屏测试

首先,使用adb或者网络,将tprender上传到开发板:

adb push tprender /root/
adb push libs /root/

然后,到开发板上进行操作,先进行联网:

wifi_connect_ap_test WiFi名称 WiFi密码
udhcpc -i wlan0
ip addr show wlan0

结果要正确显示获取到了IP:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时,应在其他电脑上,ping上面的IP,确保可以联通。

再开启tprender提供投屏功能:

cd /root
chmod u+x tprender
./tprender

执行后,输出如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从上面的输出可以看到,成功启动,等待投屏。

此时,打开手机或者支持投屏播放的电脑,播放一个视频,然后投屏小图标,就能找到 D1-H 投屏设备了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击D1-H,就能在 【百问网D1h开发板】 的屏幕上播放了。

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

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

相关文章

嵌入式Linux系统编程 — 4.3 strcat、strcpy函数拼接与复制字符串

目录 1 字符串拼接 1.1 strcat函数 1.2 strncat函数 1.3 示例程序 2 字符串复制 2.1 strcpy函数 2.2 strncpy函数 2.3 示例程序 1 字符串拼接 1.1 strcat函数 在Linux系统中,strcat 函数是C语言标准库中的一个函数,用于将一个字符串追加到另一…

MySQL内存使用率高且不释放问题排查与总结

背景 生产环境mysql 5.7内存占用超过90%以上,且一直下不来。截图如下: 原因分析 1、确定mysql具体的占用内存大小,通过命令:cat /proc/Mysql进程ID/status查看 命令执行后的结果比较多(其他参数的含义想了解可参考这…

【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效 一、分析问题背景 在使用Python连接SqlSe…

泰迪智能科技携手广州番禺职业技术学院共建上进双创工作室

为充分发挥校企双方的优势,促进产教融合,发挥职业教育为社会、行业、企业服务的作用,为企业培养更多高素质、高技能的应用型人才的同时也为学生实习、就业提供更大空间。6月26日,“泰迪广州番禺职业技术学院上进双创工作室签约授牌…

体验过可道云teamOS这些人性化设置,就再也回不去了

公司出于对文件安全的看重,让数据不落地,更安全,使用企业网盘办公已经是我们的办公常态了。 作为一款每天都要使用的软件,良好的使用体验是非常重要的。 今天就来谈一谈在使用可道云teamOS过程中,它那些令用户好感上升…

高中数学:复数-基础概念及运算法则

一、定义 规定 复数集与实数集之间的关系 二、复数的几何意义 第一种几何意义 第二种几何意义 复数向量的模 共轭复数 三、四则运算 加法 复向量加法 减法 两复数的距离 乘法 除法 四、总结 复数的所有运算法则和实数相同。 向量运算和实数向量运算相同。 怎么简便记忆了&a…

3D Wizard(巫师法师人物角色模型)

3D Wizard低多边形模型,可用于RPG射击游戏和其他项目。角色顶点数:44154 无HDRP 仅默认着色器 顶点数:44154 装配有人形骷髅。 下载:​​Unity资源商店链接资源下载链接 效果图:

企业“出海”动向 | 香港电讯助力企业勇闯东南亚市场

众所周知,随着中国人口红利及经营成本的上升,越来越多跨国企业的制造工厂往东南亚、印度等国家迁移。而国内的一些中低端制造业也由于地缘优势,纷纷在东南亚地区建立“代工厂”。 近几年,接过 “世界代工厂”重任的东南亚逐步向数…

C#使用MJpeg实现视频流发送与显示

1、发送视频流: using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Drawing; using System.Globalization; using System.IO; using System.Linq; using System.Net.Sockets; using System.Text; using System.T…

企业级数据库18条黄金设计原则(全网最详细!!!)

前言 1.名字 2.字段类型 3.字段长度 4.字段个数 5. 主键 6.存储引擎 7. NOT NULL 8.外键(不建议使用外健) 9. 索引 10.时间字段 11.金额字段 12. json字段 13.唯一索引 14.字符集 15. 排序规则 16.大字段 17.冗余字段 18.注释 前言 后端开发的日常工作&#…

超高速PCIe EtherCAT运动控制卡在高速异形插件机上的应用

市场应用背景 异形插件机主要应用于电子制造业中,专门用于自动化电子装配过程。它能够按照预设程序将编带或者供料器的电子元件通过多工位多头夹取,将电阻、电容、晶体管、连接器和按键等异形元件自动插装到PCB板的指定通孔上,极大地提高生产…

【PL理论深化】(9) Ocaml 语言:自定义类型 | 异常处理 | 模块

💬 写在前面:本章我们将继续介绍 OCaml 的基本特性,自定义类型、异常处理和模块。掌握了这些内容后,编写基本程序应该不会有太大困难。接下来的两节将学习函数式编程中常用的两种编程风格 —— 递归函数和高阶函数。 目录 0x00 …

基于盲信号处理的声音分离——最小化增益的ICA算法

基于最小化增益的ICA算法的算法是依据混合信号经过盲信号分离会产生一定的噪声,为了使得分离后的信号与原信号的比值最小时,叫做增益最小。当增益越小时,分离后噪声越小,分离信号越接近原信号,分离算法的效果越好。这是…

防止多次点击,vue的按钮上做简易的防抖节流处理

话不多说,上个视频,看看是不是你要的效果 防抖节流 1.创建一个directive.js // directive.js export default {install(Vue) {// 防重复点击(指令实现)Vue.directive(repeatClick, {inserted(el, binding) {el.addEventListener(click, () > {if (!el.disabled) {el.disabl…

【Stable Diffusion】AI绘画美女,搞副业,赚钱真香!(内附高质量美女提示词)

前言 今天就直接上干货,给铁子们上一些生成高质量美女的提示词,每一种美女类型都附有魔法咒语,可应用于midjourney和stablediffusion,直接复制即可。 话不多说,直接上图,上提示词,请欣赏&…

三大工作流引擎技术Activiti、Flowable、Camunda选型指南

文章目录 前言1 流程引擎发展历程2 流程引擎主要概念BPM (Business Process Management)BPMN (Business Process Model and Notation)CMMN (Case Management Model and Notation)DMN (Decision Model and Notation)事件(Event)顺序流(Sequenc…

控制台扫雷(C语言实现)

目录 博文目的实现思路项目创建文件解释 具体实现判断玩家进行游戏还是退出扫雷棋盘的确定地图初始化埋雷玩家扫雷的实现雷判断函数 源码game.cgame.h扫雷.c 博文目的 相信不少人都学习了c语言的函数,循环,分支那我们就可以写一个控制台的扫雷小游戏来检…

【AI落地应用实战】如何让扫描工具更会思考——智能高清滤镜2.0实战测评

一、引言 在这个信息爆炸的数字化时代,扫描工具已经成为我们日常工作和学习中不可或缺的助手。最近,扫描全能王推出了革命性的“智能高清滤镜2.0”,本次更新后,智能高清滤镜能够智能识别并优化扫描过程中的各种问题。无论是光线不…

【乐吾乐2D可视化组态编辑器】图元外观编辑

1 节点的外观样式 角度:设置尖角与圆角,值的范围:0~1 旋转:设置图形的旋转角度 进度:任意封闭图形,都可以当进度条:矩形、圆、svg、封闭连线、或其他任意封闭图形,值的范围&#…

强化学习:值函数近似【Deep Q-Network,DQN,Deep Q-learning】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实例分析:GridWorld…