unity rtsp 视频渲染(一)

unity

unity 可以说是一个不错的工具,建立三维的场景非常方便,下面我们建立一个三维的场景,并且在三维的场景中和场景外分别建立系统去播放视频。所谓场景内就是在三维中播放视频,场景外就是在三维场景前表面的二维平面中播放视频。

rtsp

一般来说,大部分播放器支持rtmp,rtsp等视频服务,我们可以自己写,也可以使用现有的播放器。rtsp server 我们使用了live555 和 一个通用的go 服务器

方式一

1 使用组件ump
使用组件也可以有两种方式 1是在平面中中
播放,也就是创建Canvas-> RawImage
在RawImage中Material 选择 ARVideoCanvasMaterial,增加 AR Video Canvas Helper 脚本组件,里面可以选择Main camera , MediaPlayer

在这里插入图片描述

在UniversalMediaplayer 中选择Rebderubg caneraObjects 为1 , Element 0 选择RawImage
Path to Video file: 选择rtsp路径

在这里插入图片描述

接下去点击开始,会在平面上开始放rtsp 视频
在这里插入图片描述

第二种是在三位场景里面放,建立一个plane, 建立一个video 材质,把video材质链接到plane 上面,
在ump中选择好Element 0 为plane
在这里插入图片描述
把plane 拉到树前面,就失去了树的影音
在这里插入图片描述
拉近一点看
在这里插入图片描述
如何能够拉近和拉远镜头,我们必须写点代码
建立一个fly.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class fly : MonoBehaviour
{private float sensitivityX = 3F;        //X转动增量速度private float sensitivityY = 3F;        //y转动增量速度private float minimumY = -90F;          //Y轴转动限制private float maximumY = 90F;float rotationY = 0F;                   //y起始值private float MovingSpeed = 3f;         //移动屏幕的速度float delta_x, delta_y, delta_z;            //计算移动量float distance = 5;float ZoomSpeed = 60f;                  //拉近拉远速度Quaternion rotation;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){if (Input.GetMouseButton(0)){//左键旋转屏幕{float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;rotationY += Input.GetAxis("Mouse Y") * sensitivityY;rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);}}if (Input.GetMouseButton(2)){//右键按钮功能,我没有设置,可根据需求修改}if (Input.GetAxis("Mouse ScrollWheel") != 0){//滚轴拉近拉远delta_z = -Input.GetAxis("Mouse ScrollWheel") * ZoomSpeed;transform.Translate(0, 0, -delta_z);distance += delta_z;}if (Input.GetMouseButton(2)){//滚轴中间移动屏幕delta_x = Input.GetAxis("Mouse X") * MovingSpeed;delta_y = Input.GetAxis("Mouse Y") * MovingSpeed;rotation = Quaternion.Euler(0, transform.rotation.eulerAngles.y, 0);transform.position = rotation * new Vector3(-delta_x, -delta_y, 0) + transform.position;}}}

下面是在树后面,unity比较强,在三维的表面中把树的阴影也投影到平面上了。
在这里插入图片描述

2 使用内存共享
如果是我们自己的播放器内,自己写的播放器比较灵活,比如可以自己控制线程,自己播放,使用不同的各种协议或者自定义协议,这时候,如何最快的和unity 进行交互,应该使用内存共享,我们写一个rtsp 或者rtmp 播放器,解码到yuv 或者 rgb 的时候,可以直接给内存共享给unity, 在unity中使用 filemapping来获取数据。
这到二再写。
3 使用websocket 接收
作为websocket client 来接收图片甚至yuv 数据直接渲染,和 内存共享是异曲同工。
这到三再写。

4 使用webrtc
使用datachannel
这到四再写。

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

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

相关文章

Unity 视频渲染插件AVPro Movie Capture 简易教程

随着Unity 的 功能日益强大,Unity5的发布使的Unity的图形渲染能力达到了一个新的层次,全局光照的加入,各种新特性的加入,使视频的实时渲染不再是天方夜谈,Unity5发布时的演示视频《Adam》,画质惊人。Unity在…

最新 |《未来简史》作者赫拉利 演讲:AI不需要意识就可以毁灭人类文明 (全文+视频)...

作者:城主 | 编辑:腾讯新闻 郝博阳 编者导语: 最近两个月,自从《暂停AI声明书》发布后,我们看到了诸多AI行业内的专家大佬隔空辩论AI的潜在威胁和治理方法,场面一时无两,基本上把技术路径上AI可…

大模型基础知识 - 语言模型及其演进 公开版

本文为作者内部分享文档,由于不涉敏可以公开,分享本身是课程形式,有什么疑问欢迎在评论区留言。 开场白 人工智能发展到现在,在2个重要领域取得了重大突破,有望达到人类水平: 计算机视觉 (Com…

使用ChatGPT帮助快速读书:《Rise of the Robots: Technology and the Threat of a Jobless Future》

有了ChatGPT的帮助,读书也快了,英文版的书也可以快速了解其主要内容,不知道这样囫囵吞枣的阅读有没有其它副作用,先读了几本再说。 《Rise of the Robots: Technology and the Threat of a Jobless Future》这本书我没找到中文版翻…

揭秘ChatGPT爆火的背后真相:学编程已经成为必选项!

这一阵最热门的话题,莫过于人工智能新选手—— ChatGPT,在推出后只用了两个月就积累了1亿用户!它的出现在科技圈掀起了一阵“惊涛骇浪”,有人称ChatGPT的意义,堪比当年蒸汽机的出现,它足以爆发新一轮的“工…

【ChatGPT】AI 2.0 时代:拥抱先进的生产力

AI 2.0 时代:拥抱先进的生产力 目录 AI 2.0 时代:拥抱先进的生产力 康波周期是什么? 人类工业革命以来的近现代史 先进生产力的变成了信息与数据 AI科技改变世界

GraphPad Prism 科研绘图(一)

打开GraphPad软件,可以在左侧选择要绘制的图表类型,也可以在左下方直接打开现有的文件 graphpad的工作流程是,首先你需要输入你的数据,也就是你的实验原始数据,叫做Data Table 然后你可以对你的原始数据进行分析&…

科研绘图软件大全

作为材料,化学,环境,物理领域的科研工作者,你是否常为如何表达自己的思想而苦恼? 作为学术论文创造者,你是否为论文中图文单一而叹气? 在这里,推荐给你几款常用科研绘图软件,让你论文从此成为…

【知识图谱】知识图谱的本质是什么?

持续总结更新中 一句话总结知识图谱人工智能从感知到认知什么是知识?什么是先验知识?什么是知识表示?知识图谱的基本组成要素?什么是概念?什么是实体?什么是本体?谈谈本体构建什么是知识图谱的s…

【毕业季】毕业设计避坑指南

文章目录 前言🍊缘由毕业季,毕业设计分手季 🎯主要目标实现4大重点 🍈猜你想问如何与狗哥联系进行探讨1.关注公众号【JavaDog程序狗】2.踩踩狗哥博客 🍯猜你喜欢文章推荐 正文1.毕业设计如何选题2.毕业设计如何去写3.网…

文心一言“插刀”百度?

在ChatGPT出世半年,爆火将近2月后,中国版AI大模型终于崭露头角。 3月16日,百度于北京总部召开新闻发布会,主题围绕基于文心大模型技术生成式对话产品——文心一言,这也预示着中国首个类ChatGPT产品面世。在其正式推出前…

MSRA王晋东:大模型时代,普通人的科研何去何从

王晋东 投稿量子位 | 公众号 QbitAI 最近,电子工业出版社送了我一本《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》,不禁感叹:现在连写书都这么卷了! 要知道,ChatGPT 于去年11月30日刚刚发布、…

ZadigX 发布:价值驱动一切 链接最酷玩家

Zadig 徜徉开源大漠,用爱发电两年之际,低调发布企业版 ZadigX,广泛链接一切价值创造者。发布会将在 2023 年 4 月 27 日 以全线上形式举办,特邀一位神秘总裁,两大车企总监,十大云原生盟主联创/CEO&#xff…

我是普通人,我居然可以这样借力ChatGPT?(此文不卖课)

昨天写了一篇《程序员,如何借力ChatGPT?》,分享了借助AI: (1)撰写通用代码; (2)协助寻找BUG; (3)协助优化算法性能; &…

没有ChatGPT和new bing ?加入文心一言!

前言: 话虽说ChatGPT和newbing已经席卷网络AI语言,当了现在ai的头号老大,但是那两个都是需要梯子才能使用,ChatGPT还需要付费,所以还是有很多童鞋是没有加入使用ai大军的,那我们不妨看一下这个:文心一言。 步入正题…

android自定义涂鸦,Android Studio:小Demo-“涂鸦”

一、在手机模拟器上显示一个图片 1、MainActivity.java里的代码 public class MainActivity extends AppCompatActivity { SuppressLint("ClickableViewAccessibility") Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc…

android:在照片上绘制涂鸦

这个应该是简易版的美图秀秀(小伙伴们吐槽:你这也叫简易版的??我们看着怎么不像啊……)。好吧,只是在图片上绘制涂鸦,然后保存。 一、选择图片 这个道长有必要说一下,在绘制涂鸦时,笔画会根据…

通过触摸屏事件实现在图片上涂鸦——Android

目的:记录在屏幕上滑动的轨迹,实现在图片上涂鸦的功能 开发工具:Android Studio3.3.2 实现过程: 第一步:新建drawBoard.java用于自定义view 将图片放到drawable文件夹下,用BitmapFactory.decodeResource加…

涂鸦蓝牙协议移值(初级)

一、 移植前所需资料 ①获取涂鸦SDK包; ②基于我们芯片平台生成的库文件(将下面的图片发给涂鸦技术支持,然后会提供tuya_ble_lib_51802.lib); 【库不正确报的错误】 ③《涂鸦_ble_sdk_sdk说明_v2》文档; ④…

iOS 图片编辑——涂鸦——随手指移动随意画线

iOS 涂鸦 我们已经讲过画直线 和画带箭头的线段 参考:http://blog.csdn.net/lwjok2007/article/details/50885376 这节 我们尝试做一下 随意画 手指移动到哪里就在哪里画线 如下图所示: 使用Xcode创建项目,起名:TestFingerLine …