
car-eye 流媒体
文章平均质量分 51
CarEye 官方博客
这个作者很懒,什么都没留下…
展开
-
车载和安防视频平台的融合
GB28181和GT1078视频平台的整体融合,促进CarEye云平台持续发展原创 2022-09-01 17:01:15 · 369 阅读 · 1 评论 -
CarEye GT1078 转GB28181 方案
最近因为业务需要,将GT1078 的设备链接到政府平台,政府平台还不是GT/808系列的,而是GB28181 上级平台,所以造成了需要进行数据和格式的转化。具体主要流程如下:GT/T1078 视频平台级联到上级公安部平台要点:车辆管理系统录入公安部编码,将机构,设备,通道跟国标编码一一对应 平台将设备信息通过websocket接口上传到CarEye GB28181 服务器 CarEye GB28181 服务器将设备信息同步到上级平台 上级指令通过CarEye 服务器转化成webSOCET发送到原创 2022-03-23 11:34:34 · 4660 阅读 · 0 评论 -
CarEye 流媒体处理服务器
CarEye 在车载流媒体服务器的基础上发展了GB28181 视频处理服务器。将RTMP,RTSP 通用服务器跟车载和安防视频服务器集成,构成了流媒体服务集群原创 2022-03-03 16:26:57 · 380 阅读 · 0 评论 -
GB28181 视频服务器文档整理
CarEye 开发GB28181 服务器有将近两年时间了,早期我们用纯C++开发了一个GB28181视频服务期,对外的接口是基于MQ协议的。这样开发出来的服务器主要有几个问题。1. SIP服务器和流媒体服务器是绑定在一个进程中的,因为没有分离,造成了视频处理和SIP服务器只能在一台服务器上运行,既不能打到GB28181协议的构架要求。也造成无法使用负载均衡的功能。2. 对外接口采用了MQ通信方式。虽然MQ消息处理实时,对一些数据处理,如报警,对讲等。但MQ本身是重量级构建,不方便一些应用场景快速构建原创 2022-02-05 16:14:23 · 2370 阅读 · 0 评论 -
Car-eye 视频服务重新调整和优化
car-eye 视频服务器已经从最初的JT/T1078 视频服务器发展到集成JT1078,JB28181两套协议的视频服务,另外我们还需要做状态检测,提供丰富的API给平台获取状态,这需要视频服务器从框架层进行深度优化。优化主要做以下工作1. 指令和视频流的分离2. 独立于行业内的业务的抽象,如URL格式组织3. 可配置参数的服务器,通过平台远程配置4. 可扩展的视频服务器群,通过接口获取服务器状态优化后的服务器与web平台,客户端能更好的交互,接口也丰富不少。具体框架图如下原创 2021-04-21 19:35:40 · 297 阅读 · 0 评论 -
移动设备接入视频服务器软负载均衡在car-eye平台中的应用
移动设备接入视频服务器和寻常的直播系统有一定的区别,一般直播系统是拉流多,一个直播多个观众的模式但移动设备是成千上万的设备,客户端观看视频的不多。其中国家交通部视频标准JT/T 1078 协议和公安部标准JB28181 视频标准都是由服务器来决定流媒体服务器的。这就决定了设备端的视频服务器是临时分配的。从而让软负载均衡实现有了可以发挥的空间。使用软负载均衡的好处有以下两点:1. 不需要硬件投入,成本低2. 移植性好,软件调度算法多种解决软负载均衡就要能通过软件的方式获取服务器的状原创 2021-04-21 19:21:47 · 232 阅读 · 0 评论 -
GB28181/GT1078 平台中视频下载的实现
car-eye 在GT1078 视频服务器开发中曾经搭建FTP服务器来实现视频文件下载功能。在GT1078 协议里,是通过FTP服务上传视频文件到FTP服务器,然后客户端从FTP服务器下载视频文件,这是标准的官方给出的下载实现方式。但是很遗憾的是,这种实现方式是有缺陷的--与设备厂家实现脱离了。我们在客户端的播放器一般都支持MP4的文件格式,里面的音视频格式一般是AAC和H264这种格式。但设备端的录像文件,各种各样,甚至有的厂家直接存储的bin文件。这直接导致了FTP上传的文件在客户端无法播放为止,分原创 2020-10-31 18:32:48 · 2034 阅读 · 0 评论 -
RTMP 推流增加对H265的支持
RTMP协议本身是不支持H265的。但现在的设备越来越追求更高的压缩比和更高的图形质量。H265相对其他的媒体格式更多受到厂家的重视。rtmp协议要支持H265首先要定义一个ID。按照大家的约定来看,基本使用12(0xc)作为ID. 同时相对H264对NALU的分析要进行改变。并对发送的Metadata数据进行修改。先看下发送metadata:int SendVideoSpsPpsVps(RTMP* r, unsigned char* pps, int pps_len, unsigned char原创 2020-08-07 19:13:23 · 1768 阅读 · 0 评论 -
car-eye 打造GT1078 GB28181 双视频平台标准服务器
Car-eye 在GT1078视频服务器的基础大幅扩充视频服务器功能,除了对接国家交通部的上级平台,还扩充了国家公安部视频标准GB28181。两大协议实现为car-eye 视频服务器提供了强大的功能。整个实现的框架如下:主要应用场景有:车辆视频监控 摄像头远程监控 车辆视频上级平台发送 公安部上级平台对接 车辆平台转化到公安部平台视频服务器能广泛使用于车联...原创 2020-03-23 12:34:47 · 1121 阅读 · 0 评论 -
car-eye 物联网音视频流媒体架构
car-eye 从车载领域的音视频解决方案全面向整个物联网发展,为此,我们以JB28181 级联为基础扩充了音视频服务器架构。满足不同行业的摄像头接入其中,应用于音视频监控,对讲,报警等应用。整体服务器的架构如下图:这死一个单机服务器网络构架。对数据并发比较大的系统,我们采用软负载均衡策略。满足设备流的并发需要。如以车载管理平台为例子:确保接入设备可以达到几百台,...原创 2020-02-22 11:03:23 · 713 阅读 · 0 评论 -
两种视频服务器的软负载均衡
在视频应用中,通常一台服务器无法解决所有业务,需要考虑系统的负载均衡。现实世界主要考虑两种典型的应用,一是拥有大量接入摄像头的应用,客户端多,但设备更多,而且这种情况下设备还需要在没有客户端的情况下实现视频上传实现云存储,如在移动车载领域,视频监控领域。第二种应用是设备并不多,但拥有大量的客户端,这种应用更加常见,如直播,教育等行业。无论这两种应用的那种,当量上去以后都需要考虑多视频服务器架构,并...原创 2019-03-11 21:14:00 · 1225 阅读 · 2 评论 -
Car-eye 开源平台web跟视频服务器的负载均衡方案
car-eye 平台是一个云平台,单个web服务器可以对应多个视频服务器,这些服务器的带宽,码流大小通过统计出占用带宽情况这些信息通过http协议反馈到web后台。web再根据这些数据决定下面的设备该用哪个服务器进行视频分发。以下是整个平台和视频服务的关系: 视频服务器是多个连接到一个web后台之上。因为车载设备数量比较多,而视频很占用码流。用户可以增加多个视频服务器给平台,避...原创 2019-02-18 21:46:39 · 690 阅读 · 0 评论 -
音视频推流中的时间问题
web上看直播对时间的要求是十分苛刻的。时间需要均匀的变化。这在局域网或者是电脑PC端并不是十分大的问题。因为网络通常是稳定可靠的。但在移动终端中,网络是不稳定的,从而造成音视频数据中时间戳很可能是变化不是平稳的。前面我们已经提到平滑在web上展示的重要性,我们现在进一步讨论这种平滑的解决方案:首先,我们需要平滑时间,就需要根据前面时间戳的变化来推断下一个时间戳的时间,避免web在播放的时候因...原创 2018-12-27 11:18:52 · 1271 阅读 · 0 评论 -
调用流媒体服务器统计功能,根据客户关闭视频流
在car-eye JT1078 平台开发中可能遇到实时视频忘记关闭的情况,设备一直在推流在移动系统中是完全不可以接受的。为止,我们需要自动监控设备的推流和拉流情况,RTMP服务器提供了基于json格式的输出,用来表达有多少个客户端连接。但客户端观看为0的时候,平台自动关闭这个设备流/{"http-flv":{"nginx_version":"1.12.2","nginx_http_fl...原创 2018-11-14 18:18:13 · 722 阅读 · 0 评论 -
音视频传输中时间戳平滑处理
在音视频中一般时间戳从设备中系统时间得来,通常是以毫秒作为单位的linux时间。因为网络传输或者时间有时候突变的因为,造成了时间戳混乱。有必要对时间戳做一下处理。包括突变时候平滑处理,包括音视频不同步的时候的处理,下面算法解决了时间戳计算问题,在移动设备上很有好处:static int RTMP_CanculateTimestamp(CarEye_RTMP_Handle handle, Me...原创 2018-10-04 14:32:41 · 1647 阅读 · 0 评论 -
Car-eye 开源平台基于JT/T 1078 视频协议打造功能强大的车联网管理平台
随着5G时代的来临,车辆管理平台开始慢慢把车载视频作为一个标准而制定。JT/T1078 是国家交通部制定的基于JT/T808 协议的视频补充协议。Car-eye 开源平台为此打造了功能强大的视频服务器和管理系统。整个系统的框架如下: 整个框架将设备,客户端,视频服务器,管理平台和数据库,政府监管平台几方有效的结合起来。其中使用成熟有效的socket框架和功能强大稳定的流媒体服...原创 2018-08-17 10:00:01 · 5673 阅读 · 1 评论 -
使用配置文件打造可配置的视频服务器转发平台
Car-eye 开源团队在做JT/T视频转发平台的时候需要配置视频服务器的参数。用到TinyXML2,感觉非常好用,能快速完成自己的配置项目。主要功能:实现对服务器的IP,端口,音视频参数的配置。可以采用一层节点完成设计。配置完成后达到如下效果: <?xml version="1.0" encoding="UTF-8" standalone="no" ?>- <co...原创 2018-08-15 14:53:07 · 464 阅读 · 0 评论 -
Car-eye JT/T1078 视频服务器开发过程中的音频处理
JT/T 1078视频协议是基于JT/T 808协议的扩展。其中视频服务器和指令控制服务器用两个SOCKET 进行通信。因为协议采用TCP-ip协议的基础上进行封装,需要对协议的数据进行解释。然后转化成RTSP或者RTMP通用的协议以扩展视频应用的范围。其中我们用到了RTMP协议,在网络延迟越来越少的情况下。RTMP协议的服务器性能更加稳定,web开发更加方便。但这里主要因为面对的设备...原创 2018-08-09 21:32:19 · 3921 阅读 · 0 评论 -
Car-eye 流媒体服务提升和问题备份
Car-eye 流媒体服务器是Car-eye 开源团队基于nginx-rtmp mouldule 开发和维护的高性能RTMP 服务。目前已经进入商用阶段。代码可以从git上下载试用。对于原版的基础上做了几处大的提升1. gop-cache 功能 该功能主要为了加快首屏时间,争取做到秒开。原版本身不支持该功能,这个功能加入大大缩短了开屏时间,而且配合我们拉流库和推送库,可以做到秒开。2. FLV-...原创 2018-07-11 10:31:05 · 345 阅读 · 0 评论 -
car-eye 流媒体SDK
car-eye 流媒体SDK是car-eye 开源团队针对android IOS windows linux等各种平台下开发的流媒体推送库和播放库的提供的一系列应用API接口。分成car-eye pusher,player,FFMPEG, server 各个章节,为各种流媒体音视频应用提供了完整的解决方案。以下是详细的文档说明:Car-eye RTSP client 库说明1 RTSP库接口说明关...原创 2018-07-02 15:05:02 · 913 阅读 · 0 评论 -
Nginx-RTMP功能调研
Nginx-RTMP功能调研1. RTMP协议介绍...22.RTMP server.32.1当前的流媒体server.32.2Wowza功能...33.Nginx-based RTMP server.53.1 Nginx rtmp 功能点...53.2编译nginx rtmp模块...63.3配置以及功能介绍...63.4用nginx-rtmp-module搭建直播环境...83.5Nginx...转载 2018-04-01 18:38:39 · 947 阅读 · 0 评论 -
ngnix RTMP module 学习笔记
源码地址:https://github.com/Tinywan/PHP_Experience说明: rtmp的延迟主要取决于播放器设置,但流式传输软件,流的比特率和网络速度(以及响应时间“ping”)可能会对延迟产生影响,具有播放器的本地rtmp服务器 使用“否”缓冲区(如0.1-0.2秒缓冲区等)可能会在0.8-1.2秒之间总是延迟,当事情正好工作时 nginx配置文件rtmp { s...转载 2018-04-01 18:30:17 · 524 阅读 · 0 评论 -
Nginx RTMP 模块 nginx-rtmp-module 指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。指令Corertmp语法:rtmp { ... }上下文:根描述:保存所有 RTMP 配置的块。server语法:server { ... }上下文:rtmp描述:声明一个 RTMP 实例。rtmp { server { }}listen语法:listen (addr...转载 2018-04-01 18:17:45 · 684 阅读 · 0 评论 -
Car-eye 开源平台的下一步思考
car-eye 开源平台经过团队几个月努力,基本形成了以车载视频为基础,车辆管理平台,流媒体服务器,视频直播等多功能的开源平台架构。我们先来看下目前的基本架构:其中中心服务器主要架构有两台方案:一种是主要针对车辆管理系统的设计的:采用extjs java 框架。实现了808协议。另外一套方案主要视频功能更突出,并未实现全部车辆管理系统全部功能,并采用最新的java架构:目前的平台还存在以下不足:1...原创 2018-03-31 13:26:23 · 597 阅读 · 0 评论 -
高性能视频推送库Car-eye-push 设计
在4G时代,移动终端网络越来越快,网络流量费越来越便宜,客观上为视频在各种领域应用创造了条件,尤其移动端视频监控,视频直播成为当下几个热点。car-eye-push就是为这些需求设计而成的一个高性能推送视频流库,它支持RTSP和RTMP两个种主要的视频直播协议。通过该库可以快速有效的将视频音频数据推送到视频服务器。下面记录下在整个推送库中涉及到几个要点。1. 解决视频卡机不连续的问题 car...原创 2018-03-25 22:08:39 · 543 阅读 · 0 评论 -
car-eye server 开发之 Nginx RTMP server
car-eye 开源团队平台开始是基于RTSP协议开发的。在做好了RTSP和RTMP推送和播放两端的库和demo之后,我们决定启动RTMP服务器的开发。nginx RTMP是俄罗斯战斗民族开发一个高性能的RTMP服务器,现在已经停止维护。他的强大在于Nginx的稳定性和高并发性。先将代码下载下来并开始编译:https://github.com/Car-eye-team/Car-eye-RTMP...原创 2018-04-08 09:38:57 · 453 阅读 · 0 评论 -
lvs keepalived nginx-rtmp 视频流服务负载均衡系统搭建
拓扑图如下:一、为什么要使用负载均衡技术?1、系统高可用性2、 系统可扩展性3、 负载均衡能力LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查,故障转移,提高系统的可用性!采用这样的架构以后很容易对现有系统进行扩展,只要在后端添加或者减少realserver,只要更改lvs的配置文件,并能实现无缝配置变更!二、LVS+Keepalived...转载 2018-03-25 13:53:10 · 1181 阅读 · 0 评论 -
nginx优化——包括https、keepalive等
nginx优化——包括https、keepalive等一、nginx之tcp_nopush、tcp_nodelay、sendfile1、TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_NODELAY选项。这样就可以使缓冲区中的数据立即发送出去。Nginx的 TCP_NODELAY 选项使得在打开一个新的 socket 时增加了TC...转载 2018-04-01 18:57:32 · 530 阅读 · 0 评论 -
Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
nginx-rtmp-mudule RTMP 是一款优秀的RTMP服务器,客户端采用FLASH插件或者HLS,但flash插件消耗资源大,HLS延迟严重。nginx-rtmp-mudule 不支持HTTP方式的FLV直播。Car-eye-http-flv-module 是在nginx-rtmp-mudule RTMP基础上修改的流媒体服务器,除了支持flash播放器外,还支持现在常见的播放器。完美...原创 2018-04-15 19:18:11 · 904 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (五)ffmpeg android移植(ffmpeg android studio 静态编译)
前面我们用在ubuntu下编译了android的动态库,但实际开发中,我们可能需要在android 这类开发工具中开发基于太ffmpeg的视频应用。在android studio 中编译需要注意以下几点1. As ndk 对应的sdk不能大于编译ffmpeg本身编译的NDK中使用的SDK。可以在application.mk中指定:APP_PLATFORM := android-XX 如果XX小于了...原创 2018-05-24 21:45:42 · 397 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (六)ffmpeg android移植(ffmpeg android 下解码器)
前面谈了android下NDK编译,编码器,水印,等。我们再看下解码器的接口。直接上代码:/* * Car eye 车辆管理平台: www.car-eye.cn * Car eye 开源网址: https://github.com/Car-eye-team * CarEyeDecoderAPI.h * * Author: Wgj * Date: 2018-05-16 22:54 * ...原创 2018-05-26 23:44:10 · 422 阅读 · 0 评论 -
FFMPEG android 多CPU架构快速编译方案
前面文章我们已经构架了ffmpeg在android下的编译方案,本文介绍一下ffmpeg视频开发中多CPU架构编译的一些注意事项和应用开发的一些注意事项。在android下,通常有arm,armv7,armv8a,x86等架构。尤其中间两种在嵌入式中用得越来越多。要想编译进去,需要注意以下几点:1. NDK的编译版本至少要大于等于r10,建议使用r10e. 这是因为在早期的版本中,并不支持64位C...原创 2018-06-02 23:56:31 · 1912 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (一)ffmpeg android移植(ndk 编译)
Car-eye-FFMPEG项目是Car-eye 开源平台的一个新项目,目的是在FFMPEG项目和其外部模块,如freetype,X264的基础上建立一个多平台编译,接口调用简单的工具集。本博客是一个连载,首先从android开始写吧。因为FFMPEG本身对android编译的支持就不是特别好。本文开发环境是ubuntu分步来做:1. 建立NDK编译环境,请参考外面的博客讲ndk安装到ubuntu...原创 2018-05-14 16:53:57 · 436 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (四)ffmpeg android移植(ffmpeg 视频编码)
FFMPEG 视频编码最常见的H264,H265需要X264,X265外部模块支持,可以从我们开源平台的FFMPEG编译项目里面获取代码和配置进行一键式编译:https://github.com/Car-eye-team/Car-eye-FFMPEG,我们下面的代码主要是为了简化代码调用结构。只需要配置参数,输入数据就可以进行视频编码,不多说,贴上代码:/* * Car eye 车辆管理平台: ...原创 2018-05-19 22:46:46 · 486 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)
首先来看一副图,用来纪念对视频领域做出贡献的雷神:当然在这个图片里面的decode不是必须的,Filter 模块本身是一个非常独立的模块,但因为相关的程序,给人造成了他必须要依赖于编码器或者解码器来工作。OK 不多说,先看看内部实现代码:#ifndef __CAREYE_PUBLIC_H__#define __CAREYE_PUBLIC_H__#define __STDC_CONSTA...原创 2018-05-18 11:19:32 · 870 阅读 · 0 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块(nginx-http-flv-module)
本文章转自开源团队未央千城的博客,全文如下: 近几年直播行业火爆,开源的直播软件解决方案有SRS(Simple-RTMP-Server)和nginx-rtmp-module,前者是国人发起的一个优秀的开源项目,目前国内很多公司都使用它作为直播解决方案,由C++编写;后者依赖Nginx,以第三方模块的方式提供直播功能,由C编写。SRS采用多线程方式,性能优秀,经受住了众多场景的考验,但是SRS3...转载 2018-04-14 10:24:54 · 2959 阅读 · 0 评论 -
使用FFMPEG3.4.2版本进行视频的解码为YUV格式
本文章是转载开源团队路过之君的博客,最他移植ffmpeg解码器到我们的视频项目中。全文如下:最近关注的流媒体方向技术,FFMPEG学习是绕不过去的,不过网上关于FFMPEG的应用基本是基于2015年左右的版本,最新的FFMPEG视频解码部分变动还是挺大的,特此记录一下解码过程:首先当然是FFMPEG的解码器等的初始化:// 一定要先调用该注册FFMPEG,否则下面的都无法使用av_register...转载 2018-04-05 09:51:21 · 345 阅读 · 0 评论 -
视频流中的缓冲池处理
在视频处理中,为了让图像能流畅的播放,往往需要一个缓冲区、循环队列往往被用到其中。下面的无限循环队列就用来做流媒体中的缓冲区处理,用以解决视频的不流畅的问题:#include "ssqueue.h"#include <time.h>#include <stdarg.h>#include "trace.h"int SSQ_Init(SS_QUEUE_OBJ_T *pObj,...原创 2018-02-11 22:03:04 · 1593 阅读 · 1 评论