首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Unity3D中播放RTSP视频流?

如何在Unity3D中播放RTSP视频流?
EN

Game Development用户
提问于 2014-03-11 01:04:53
回答 2查看 21K关注 0票数 3

我想在Texture2D上播放RTSP视频流。该流来自IP摄像机,并使用H.264、MJPEG或MPEG4进行编码。

我知道VLC的库,ffmpeg,直接放映,媒体基金会等等,但是我如何将它们与Mono的开发联系起来?

EN

回答 2

Game Development用户

发布于 2014-03-11 06:03:52

这可不是件小事。基本上,如果您想要播放选项,或者使用现有的流解决方案,您需要构建一个支持RTP和RTSP的流服务器;ffmpeg有一个,但不幸的是,它不能在Windows上工作。如果您计划使用ffmpeg,您还需要使用本机代码动态库连接,我不确定是否所有版本都支持它。

构建流服务器需要做大量的工作,但这并不难。首先,您需要了解用于数据传输的RTP和用于协商和播放选项的RTSP。

您可以通过套接字、嗅探或相机SDK提供的数据包读取数据包。一旦获得数据包(通常作为char*的blob和length缓冲区提供),您需要首先将数据包分割为UDP、RTP/RTSP和RTP有效负载。一旦提取了RTP有效载荷,您就可以将其传递到ffmpeg解码器,该解码器将返回通常编码为RGBA的解码图像,到了那里后,您需要将图像数据放入中,并将其传递到纹理中。

如果这听起来太费劲了,有一个开源库可以帮你做这件事,这叫做live555 --注意,我对它不太了解,但它可以完成任务。

票数 2
EN

Game Development用户

发布于 2014-06-29 02:46:00

还有net7mma

它有一个c# rtsp客户机和服务器,还有rtp和rtcp的实现。

有sdp类和流类,用于处理某些类型的分组化和去are。

库也以mono方式工作,并且没有外部依赖关系。

票数 1
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/71735

复制
相关文章
java继承的调用顺序
加入了子类以后,执行顺序有了新的变化,我们可以总结一下。首先第一部分执行的是父类的静态代码块—子类的静态代码块—主程序。这一部分都是执行一次,与建立多少对象没有关系。第二部分new了一个父类对象,并调用了方法。执行了它的非静态代码块—构造函数—一般方法。第三部分new了一个子类的对象,并调用了方法。执行顺序为父类的非静态代码块—父类的无参构造函数,然后是子类的非静态代码块—子类构造函数—子类的方法。
用户7043603
2022/02/27
8250
UITableView reloadData或viewWillAppear失效
后来发现原来用了UINavigationController后,viewWillAppear方法是没有效果的,要用UINavigationControllerDelegate的– navigationController:willShowViewController:animated:方法才可以达到这个目的。
EltonZheng
2021/01/22
6090
虚函数中构造函数的调用顺序
1 /*曾经有段时间一直被构造函数中的虚函数所困扰,现在通过自己重新学习了一遍,标注一下容易忘记的知识*/ 2 #include<iostream> 3 using namespace std; 4 class Base0 5 { 6 public: 7 Base0(int var):var0(var) 8 { 9 cout<<"Construct base0"<<endl; 10 } ; 11 int var0; 12 void fun()
Gxjun
2018/03/22
3.7K0
虚函数中构造函数的调用顺序
Java构造函数调用顺序问题
今天对Java的构造函数调用顺序进行研究,使用的是与C++类似的方法,即不对源码进行研究,而是直接通过打印代码对构造函数的调用顺序进行研究。
用户7886150
2021/04/20
1.1K0
Java-构造方法调用顺序
执行结果: 开始创建一个ChildClass对象… 创建FatherClass 创建ChildClass 要点: ①关于构造方法结合继承概念的调用,有如下的顺序,函数入口总是main,先执行System.out.println(“开始创建一个ChildClass对象…”)语句;然后我们调用了ChildClass这个类的构造方法,然后由于虽然在public ChildClass{}这个构造方法内并只写了System.out.println(“创建ChildClass”);但是其第一步必定执行super();于是去执行其父类FatherClass类的构造方法,同理,FatherClass类构造方法执行的时候又得先得执行默认的Object类的构造方法,不过其没有相应的语句输出。 ②总结执行顺序:构造方法第一句总是:super(…)来调用“此类的父类”对应的构造方法。所以,流程就是:先向上追溯到Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。
Fisherman渔夫
2019/07/30
9360
Java构造函数调用顺序问题
今天对Java的构造函数调用顺序进行研究,使用的是与C++类似的方法,即不对源码进行研究,而是直接通过打印代码对构造函数的调用顺序进行研究。
全栈程序员站长
2022/06/28
7540
多重继承重名方法调用顺序
#coding=utf-8 class base(object): def test(self): print('----base test----') class A(base): def test(self): print('----A test----') # 定义一个父类 class B(base): def test(self): print('----B test----') # 定义一个子类,继承自A、B class
汪凡
2018/05/29
7540
JAVA & .NET创建对象构造函数调用顺序
基类静态初始化块——当前类静态初始化块——基类初始化块——基类构造函数——当前类初始化块——当前类构造函数
雪飞鸿
2019/03/08
1.1K0
react源码解析-生命周期调用顺序
函数组件hooks的周期会在hooks章节讲解,这一章的使命周期主要针对类组件,各阶段生命周期执行情况看下图:
长腿程序员165858
2022/11/10
2340
Java抽象类及子类实例化顺序和方法调用顺序测试
测试目的 验证抽象类及子类实例化顺序; 验证抽象类是否可以在子类未实例化时调用子类实现的抽象方法; 验证java的多态性 实例 抽象类: package com.secbro.test.abstractInit; /** * @author zhuzhisheng * @Description * @date on 2016/5/28. */ public abstract class Fruit { protected Fruit(){ System.out.print
程序新视界
2022/05/06
8390
关于UrlHttpConnection.setRequestProperty()的调用顺序问题的验证「建议收藏」
在Android项目中使用到了HttpURLConnection请求资源,对于其中的方法setRequestProperty()的调用顺序有些疑惑。
全栈程序员站长
2022/09/30
9310
关于UrlHttpConnection.setRequestProperty()的调用顺序问题的验证「建议收藏」
Unity3D 销毁GameObject api调用顺序
对于每个GameObject来说,实际调用顺序是OnDisable->OnBecameInvisible->OnDestroy,但是在多个GameObject直接不能保证调用顺序,可能第一个GameObject的OnDestroy已经调用了,另一个的OnDisable才开始调用。所以当多个GameObject调用一个全局变量时,要注意。例如:
立羽
2023/08/24
2430
如何保证分布式系统中接口调用的顺序性?
分布式是当下比较流行的一个话题,很多大型的互联网公司都是分布式系统,将一个大而全的系统拆分成多个小而精的一个个的功能单一、职责集中的子系统,系统之间通过约定好的协议、规则进行调用,降低系统之间的耦合度,避免牵一发而动全身。
编程大道
2020/01/16
2.3K0
如何保证分布式系统中接口调用的顺序性?
顺序表的定义_顺序表的逻辑顺序和物理顺序
来看一个生活中的例子:周末和朋友一起吃火锅,人非常多,我们需要在等候区等候,这个等候区就与顺序表有非常多的相似之处,借助它去理解顺序表的特点。首先,在等候区有非常多的椅子,这些椅子往往是排成一排连续排放的,中间不会空出很大的空间造成浪费。这就与在顺序表中选取存储单元的方法是一样的,我们会选取一段地址连续的存储单元去存放顺序表。接着工作人员会安排我们在椅子上连续的坐下等候。在存储单元当中去进行数据的存放是一样的,也是依次地存放线性表当中的数据元素,中间也不会空出许多存储单元造成空间的浪费。最后结伴而行的朋友也会坐在相邻的椅子上,这与顺序表的存放是相同的。在逻辑上相邻的两个元素在物理位置上也要保证它相邻,也会把它存放在相邻的存储单元上。在这个例子当中,其实椅子就代表着存储单元,而每一个等候的人就是要存放的数据元素。来总结一下顺序表的特点:
全栈程序员站长
2022/09/20
1.7K0
react源码解析11.生命周期调用顺序
函数组件hooks的周期会在hooks章节讲解,这一章的使命周期主要针对类组件,各阶段生命周期执行情况看下图:
用户9002110
2021/12/08
2550
react源码解析11.生命周期调用顺序
函数组件hooks的周期会在hooks章节讲解,这一章的使命周期主要针对类组件,各阶段生命周期执行情况看下图:
zz1998
2021/12/15
2090
react源码解析11.生命周期调用顺序
函数组件hooks的周期会在hooks章节讲解,这一章的使命周期主要针对类组件,各阶段生命周期执行情况看下图:
zz1998
2021/12/03
2360
react源码解析11.生命周期调用顺序
函数组件hooks的周期会在hooks章节讲解,这一章的使命周期主要针对类组件,各阶段生命周期执行情况看下图:
全栈潇晨
2021/06/11
3450
iOS 多个category同时交换同一个方法
结论: 1.结果会覆盖,后面的会覆盖前面的,最后执行的是2的方法。无论是类方法还是实例方法。后面代码会做验证。 2.每个category的+ (void)load方法是独立,都会执行,不会相互覆盖。
且行且珍惜_iOS
2021/09/07
1.5K0
点击加载更多

相似问题

调用[超级viewWillAppear] [超级viewDidLoad]等的正确顺序是什么?

10

未调用viewWillAppear

11

不调用viewWillAppear

20

未调用viewWillAppear

22

未调用ParentViewController的ViewWillAppear

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档