这段时间在搞unity中添加大华摄像头进行视频播放,总所周知,unity平台对视频播放不是很友好,而大华的SDK只有c#版本的并没有专门为unity做出来SDK,最开始尝试过使用SDK里面的方式获取YUV格式的视频流,再讲YUV格式的视频流转换为unity可以播放的格式,但是这个格式转换经常出现问题,而且很卡顿,所以呢我就用了ump插件进行rtsp视频流播放,还算是比较流畅的。虽然网上很多unity调用大华视频的教程,但还是再手写一下增加一点印象
1.首先下载UMP插件:
链接:https://pan.baidu.com/s/1mf7EmxQ9OKUVnDWLNUK1tw
提取码:hddg
2.安装导入
把UMP插件导入unity3d中,随便建一个材质球(当然UI上面也可以使用),然后将预制体UniversalMediaPlayer拖入到场景中 在pathtoVideoFile选项中设置rtsp协议(即配置路径),ip 账号 密码 端口号 所属主还是子码流类型等。
新建一个RawImage拖到RenderingGameObjects中
运行即可看到摄像头的画面
如果运行报错的话,错误是找不到libvlc.dll文件,那就是你电脑上没有vlc库,下载安装一个,安装完成之后,错误立马消失
库下载地址:http://get.videolan.org/vlc/3.0.6/win64/vlc-3.0.6-win64.exe
复制跳转会自动弹出下载界面,下载安装即可(默认地址就好)
如果打包出来还是没有画面的话(我的是自己电脑上有画面,别人电脑无画面)
解决办法是找到插件里面的Resources/UMPSettings/Use installed VLC 勾选上
再次打包别人电脑上就有画面了(如果还是没有那就是没有装库了,安装就好了)
因为之前用UMP是1.7版本的,打包之后无画面(可能也是因为没勾选VLC),最后用的这个2.0.3版本的,打包运行完美,在其他电脑测试也完美出现画面
使用ump打包webGL发布到网页上遇到视频不能播放的问题(视频地址网上随便找的)解决方法如下:
针对主流厂商rtsp地址格式整理
一、大华
1.实时码流格式
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
格式说明
username : 用户名。例如admin
password : 密码。例如admin。
ip : 为设备IP。例如 10.7.8.122
port : 端口号。默认为554,若为默认可不填写
channel : 通道号,起始为1。例如通道2,则为channel=2
subtype : 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)
使用示例:rtsp://admin:admin@10.12.4.84:554/cam/realmonitor?channel=2&subtype=1
2.回放码流格式
rtsp://username:password@ip:port/cam/playback?channel=1&subtype=0&starttime=2018_03_08_02_54_46&endtime=2018_03_08_03_54_46
二、海康:
1.1.实时码流格式
rtsp://username:password@ip:port/Streaming/channels/[?parm1=value1&parm2=vlaue2]
格式说明:
username:用户名 默认Admin
password:密码 默认admin
ip:设备ip
port:端口号,默认554
id编号 101:通道1主码流 、102通道1子码流、201通道2主码流
示例:rtsp://admin:12345@222.161.231.2:554/Streaming/channels/101?transportmode=unicast
2.回放码流格式
rtsp://username:password@ip:port/Streaming/tracks/101?starttime=20180308T025446Z&endtime=20180308T035446Z&name=02000000382000000&s
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删