流媒体开发
JTT1078,RTSP,RTMP等流媒体开发相关资料
路过&
从这个世界路过, 留下些许痕迹...
展开
-
CentOS7编译ZLMediaKit并使能WebRTC
在CentOS7中编译ZLMediaKit并使能WebRTC原创 2024-04-08 22:02:14 · 629 阅读 · 0 评论 -
载重在车辆管理系统的应用(2)
随着车载监管越来越细化,车辆载重开始慢慢进入管理者视野。目前车载传感器有高,中,低 三个等级。由于加载的传感器的算法,传感器的个数不同。精度也不一样。低精度的单传感器主要用来物流管控,高精度的传感器主要用来环卫称重,物流监控,超载等。各个行业对传感器需求大致如下表:载重整体行业主要是面临成本上来的压力,算法的门槛比较高,致使应用无法推广。1. 传感器本身的成本比较高,安装比较复杂2. 算法应用比较复杂,平台鲜有整合好的3. 运维成本比较高CarEye 车辆管理平台,在原来视.转载 2022-02-24 19:24:28 · 207 阅读 · 0 评论 -
载重在车辆管理系统的应用(1)
物流业和车辆管理系统应用,催生了载重传感器在行业内的应用。相对于传统的地磅称重,其中有很多优势,包含称重方便,全程监控等。车辆管理平台需要对传感器的数据进行过滤,平滑等一些列算法处理。将离散的点通过数值映射到一个区间,从而让载重实际数据更加稳定。其中主要注意事项有:1. 将AD 转化成一个小区间数据,如3000变化的区间转化倒30这区间。2. 将偶尔变化的波形转化通过前后相关的位置,装卸重量的关联去掉3. 通过不断的探测,检测出装货和卸货的时间4. 通过对位置装卸的位置确定最终的装卸转载 2022-02-24 19:22:26 · 165 阅读 · 0 评论 -
传感器在车联网系统中的应用注意事项
传感器是物联网领域非常重要的一部分,传感器的种类十分繁多,他们通常使用AD口,串口等通信口跟主机相连用于实现整个系统中某个具体功能。在我们车联网行业,经常要用到的传感器有重力传感器,温度传感器,油量传感器,载重传感器,湿度传感器等。这些传感器通常以定时上报数据的方式进行数据传输。采集的数据量十分大。也通常只有对大量数据的采集才能实现综合数据分析,从而产生有效的价值。下面我们谈下这些传感器数据使用中一些注意事项:1. 传感器的数据通常是不稳定的,有必要需要进行滤波处理。现在的传感器基本都在芯片转载 2022-02-24 19:19:51 · 278 阅读 · 0 评论 -
Car-eye 视频服务重新调整和优化
car-eye 视频服务器已经从最初的JT/T1078 视频服务器发展到集成JT1078,JB28181两套协议的视频服务,另外我们还需要做状态检测,提供丰富的API给平台获取状态,这需要视频服务器从框架层进行深度优化。优化主要做以下工作1. 指令和视频流的分离2. 独立于行业内的业务的抽象,如URL格式组织3. 可配置参数的服务器,通过平台远程配置4. 可扩展的视频服务器群,通过接口获取服务器状态优化后的服务器与web平台,客户端能更好的交互,接口也丰富不少。具体框架图如下转载 2022-02-24 19:18:32 · 131 阅读 · 0 评论 -
GB28181 视频服务器文档整理
CarEye 开发GB28181 服务器有将近两年时间了,早期我们用纯C++开发了一个GB28181视频服务期,对外的接口是基于MQ协议的。这样开发出来的服务器主要有几个问题。1. SIP服务器和流媒体服务器是绑定在一个进程中的,因为没有分离,造成了视频处理和SIP服务器只能在一台服务器上运行,既不能打到GB28181协议的构架要求。也造成无法使用负载均衡的功能。2. 对外接口采用了MQ通信方式。虽然MQ消息处理实时,对一些数据处理,如报警,对讲等。但MQ本身是重量级构建,不方便一些应用场景快速构建转载 2022-02-24 19:16:24 · 261 阅读 · 0 评论 -
GB28181 服务器开发中遇到问题整理
car-eye GB28181平台中 web和视频服务器开发已经开始进入到发布版本阶段。在平台开过程中遇到过很多问题,下面整理下分享给各位开发者,同时也作为备份。1. 平台框架和通信。一般来说我们做一个平台的用户界面,通常用java,C#这些工具,而视频服务通常采用C++或go这类语言。所以基本要一个通信来实现数据共享和业务串联。通常的通信不外乎是采用底层的TCP通信,上层的http通信等。在JB28181项目中我们采用了mq消息队列作为通信方式。之所以采用这个中间件是因为MQ在各种操作系统,语言都转载 2020-10-14 16:11:43 · 547 阅读 · 0 评论 -
Car-eye 开源平台基于JT/T 1078 视频协议打造功能强大的车联网管理平台
随着5G时代的来临,车辆管理平台开始慢慢把车载视频作为一个标准而制定。JT/T1078 是国家交通部制定的基于JT/T808 协议的视频补充协议。Car-eye 开源平台为此打造了功能强大的视频服务器和管理系统。整个系统的框架如下:整个框架将设备,客户端,视频服务器,管理平台和数据库,政府监管平台几方有效的结合起来。其中使用成熟有效的socket框架和功能强大稳定的流媒体服务器。设备端采用JT/T1078视频标准进行数据通信。服务器之间,服务器与客户端采用MQ进行通信确保数据能共..转载 2020-10-14 16:11:12 · 438 阅读 · 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-10-14 16:10:13 · 1395 阅读 · 0 评论 -
car-eye 打造GT1078 GB28181 双视频平台标准服务器
Car-eye 在GT1078视频服务器的基础大幅扩充视频服务器功能,除了对接国家交通部的上级平台,还扩充了国家公安部视频标准GB28181。两大协议实现为car-eye 视频服务器提供了强大的功能。整个实现的框架如下:主要应用场景有:车辆视频监控 摄像头远程监控 车辆视频上级平台发送 公安部上级平台对接 车辆平台转化到公安部平台视频服务器能广泛使用于车联网,物联网等各个领域。...转载 2020-10-14 16:07:11 · 421 阅读 · 0 评论 -
WIN10下调用waveInOpen方法失败返回错误1的解决方法
最近调语音对讲,调用系统底层的waveInOpen方法,发现个特别奇怪的问题,在一台电脑上是没有问题的, 但换了另一台电脑一直返回错误1, 网络上搜索不到产生该值的情况,音频输入设备都是有的,今天突发奇想打开了系统的录音机,发现系统录音机也无法打开,然后顺藤摸瓜,没想到真的找到了问题所在,WIN10下使用麦克是有权限设置的,在设置->隐私中需要开启麦克才可以使用,如下图所示:然后发现...原创 2018-12-12 16:19:54 · 2564 阅读 · 0 评论 -
使用FFMPEG库将内存中的H264跟AAC数据流合成MP4文件
之前使用的FFMPEG基本都是打开指定链接或者文件读取数据进行操作, 此次要实现的功能是在服务器中读取内存中的H264跟AAC裸流进行文件合成保存, 这就有些难度了, 经过了两个周的资料搜索研究终于完成了该功能, 在此记录说明下, DEMO开源地址:https://gitee.com/careye_open_source_platform_group/MP4MuxerTest首先要感谢两篇...原创 2019-03-13 14:47:27 · 4729 阅读 · 20 评论 -
FFMPEG关于avio_alloc_context申请使用内存释放问题
最近在做将内存媒体流数据合成为MP4文件的实现, 功能暂时还未实现, 不过在研究中发现了一个问题, 描述下:FFMPEG输入上下文的初始化实现如下: AVIOContext* pb = NULL; AVInputFormat* inputFrmt = NULL; if (mVideoBuffer == nullptr) { mVideoBuffer = (uin...原创 2019-03-12 09:00:41 · 4097 阅读 · 3 评论 -
在Win10下使用LiteIDE对EasyDarwin的Go项目进行编译
丢掉了很久的Go语言又想学习学习,看到EasyDarwin的RTSP服务器改为Go语言开发的就下载下来看看编译了下,在Win下使用LiteIDE默认是编译不过的,不过稍作修改就可以进行编译了。编译前除了安装LiteIDE外还要安装GCC,需要对SQLITE进行编译。GCC可以直接安装MingWx86_64-8.1.0-release-posix-seh-rt_v6-rev0版本即可,安装完...原创 2018-11-13 15:08:56 · 1313 阅读 · 2 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (一)ffmpeg android移植(ndk 编译)
Car-eye-FFMPEG项目是Car-eye 开源平台的一个新项目,目的是在FFMPEG项目和其外部模块,如freetype,X264的基础上建立一个多平台编译,接口调用简单的工具集。本博客是一个连载,首先从android开始写吧。因为FFMPEG本身对android编译的支持就不是特别好。本文开发环境是ubuntu分步来做:1. 建立NDK编译环境,请参考外面...转载 2018-05-14 20:54:54 · 276 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)
工欲善其事情,必先利其器。在android下使用ffmpeg必须使用JNI。先创建一个好的编译工具为先:按照下面步骤在android stdio 下创建JNI的编译环境1.配置Anroid Studio(这步是关键)选中项目,单击File菜单,选择Setting进入设置界面。或者按快捷键 Ctrl+Alt+S。:点击+号之后,打开Macros 配置宏命令界面,如下图:2.配置使用javah 、nd...转载 2018-05-20 22:42:14 · 183 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)
首先来看一副图,用来纪念对视频领域做出贡献的雷神:当然在这个图片里面的decode不是必须的,Filter 模块本身是一个非常独立的模块,但因为相关的程序,给人造成了他必须要依赖于编码器或者解码器来工作。OK 不多说,先看看内部实现代码:[cpp] view plain copy #ifndef __CAREYE_PUBLIC_H__ #define __CAREYE_PUBLIC_H__ ...转载 2018-05-20 22:43:33 · 237 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (四)ffmpeg android移植(ffmpeg 视频编码)
FFMPEG 视频编码最常见的H264,H265需要X264,X265外部模块支持,可以从我们开源平台的FFMPEG编译项目里面获取代码和配置进行一键式编译:https://github.com/Car-eye-team/Car-eye-FFMPEG,我们下面的代码主要是为了简化代码调用结构。只需要配置参数,输入数据就可以进行视频编码,不多说,贴上代码:[cpp] view plain copy ...转载 2018-05-20 22:44:58 · 267 阅读 · 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-28 09:53:36 · 165 阅读 · 0 评论 -
FFMEPG 平台移植,接口简化和外部模块接入 (六)ffmpeg android移植(ffmpeg android 下解码器)
前面谈了android下NDK编译,编码器,水印,等。我们再看下解码器的接口。直接上代码:[cpp] view plain copy /* * Car eye 车辆管理平台: www.car-eye.cn * Car eye 开源网址: https://github.com/Car-eye-team * CarEyeDecoderAPI.h * * Author: Wgj * Date...转载 2018-05-28 09:54:44 · 278 阅读 · 0 评论 -
CarEye开源流媒体部标平台
相对比EasyDarwin的开源流媒体平台而言, CarEye开源平台更具有针对性, 该平台针对的是当前热门的部标平台, 并且包含了从设备端到服务器端到客户端以及手机端的整套解决方案, 进行商用更加方便.相关代码可以参考 https://github.com/Car-eye-team QQ技术群:590411159该套系统设备端基于Android系统进行开发, 最多支持4路视频并支持JTT808协...原创 2018-03-01 13:10:40 · 1606 阅读 · 0 评论 -
libCarEyePusher推流库推送本地文件
libCarEyePusher目前在Windows平台的文件推流功能已经完善, 并可以推流MP4文件指定时间段内的音视频数据, 而且调用也非常简单, 下面来说一下使用方法:要推送指定MP4文件直接调用: int chn = CarEye_StartNativeFileRTSP(ServerIP, ServerPort, SdpName, TestFile, 12000, 32000);即可, 最后...原创 2018-03-10 12:40:11 · 391 阅读 · 0 评论 -
高性能视频推送库Car-eye-push 设计
在4G时代,移动终端网络越来越快,网络流量费越来越便宜,客观上为视频在各种领域应用创造了条件,尤其移动端视频监控,视频直播成为当下几个热点。car-eye-push就是为这些需求设计而成的一个高性能推送视频流库,它支持RTSP和RTMP两个种主要的视频直播协议。通过该库可以快速有效的将视频音频数据推送到视频服务器。下面记录下在整个推送库中涉及到几个要点。1. 解决视频卡机不连续的问题 car...转载 2018-03-26 14:35:41 · 219 阅读 · 0 评论 -
Car-eye 开源平台的下一步思考
car-eye 开源平台经过团队几个月努力,基本形成了以车载视频为基础,车辆管理平台,流媒体服务器,视频直播等多功能的开源平台架构。我们先来看下目前的基本架构:其中中心服务器主要架构有两台方案:一种是主要针对车辆管理系统的设计的:采用extjs java 框架。实现了808协议。另外一套方案主要视频功能更突出,并未实现全部车辆管理系统全部功能,并采用最新的java架构:目前的平台还存在以下不足:1...原创 2018-03-31 13:31:00 · 243 阅读 · 1 评论 -
MP4Box获取MP4媒体文件的播放时长
最近开始对流媒体进行深入了解, 发现里面真是太复杂了, 真是很佩服做流媒体的朋友, 废话不多说, 最近接触MP4Box这个开源库,进行MP4文件的解析, 刚接触找不到MP4文件播放时长的参数, 按说不应该的, 将参数信息输出查看, 发现CMp4_root_box.moov.mvhd.duration这个参数按字面意思理解应该是播放时长了, 我的测试文件值为5759754, 可是实际播放时长为63秒...原创 2018-03-08 08:15:00 · 1299 阅读 · 0 评论 -
LINUX下编译Nginx出现WARNING: 'aclocal-1.14' is missing on your system错误的解决办法
今天在Ubuntu下编译了下nginx,openssl直接使用apt-get install libssl-dev安装的Openssl库,在配置完进行编译nginx时,在进入到pcre目录下进行编译时出现了警告WARNING: 'aclocal-1.14' is missing on your system,虽然是警告,但是编辑无法向下进行了,只能进行上网搜索,最后发现可能缺少了如下几个程序:au...原创 2018-04-25 20:00:49 · 3309 阅读 · 0 评论 -
Building nginx on the Win32 platform with Visual C
原文链接:http://nginx.org/en/docs/howto_build_on_win32.html在Win32平台上使用Visual C编译nginx必备条件:要在微软Win32平台上编译nginx,你需要以下环境或源码:微软Visual C编译器. Microsoft Visual Studio®8 和 10 等已知可正常运行的版本。MSYS.Perl, 如何你想编译OpenSSL...翻译 2018-04-15 16:34:28 · 256 阅读 · 0 评论 -
CarEye推流库的网络推送优化
在现有逻辑尽量不动的情况下对CarEye的推流库在网络状态不理想的情况下进行一点优化,现有的逻辑是你调用接口推送媒体流并不是立刻就推送到网络上的,而是推送到一个队列中,然后有专门的推送线程从队列中读取数据然后进行推送,在网络正常的情况下这种逻辑是没有问题的,但如果网络不理想的时候,而你的队列申请的空间又不足够大,就会很容易造成队列溢出,这时候进行入队操作时会不断出队旧数据释放空间以将新数据入队,这...原创 2018-04-04 14:35:12 · 415 阅读 · 0 评论 -
使用FFMPEG3.4.2版本进行视频的解码为YUV格式
最近关注的流媒体方向技术,FFMPEG学习是绕不过去的,不过网上关于FFMPEG的应用基本是基于2015年左右的版本,最新的FFMPEG视频解码部分变动还是挺大的,特此记录一下解码过程:首先当然是FFMPEG的解码器等的初始化:// 一定要先调用该注册FFMPEG,否则下面的都无法使用av_register_all();// 调用该初始化函数才能读取RTSP/RTMP等网络流的协议数据,否则干瞪眼...原创 2018-04-05 09:37:53 · 1326 阅读 · 0 评论 -
WIN10+VS2017环境下编译nginx-1.12及rtmp module备忘
本项目已开源,地址:https://github.com/Car-eye-team/Car-eye-RTMP-server/tree/master/source/nginx_windows昨天在Windows下编译了下nginx-1.12版本,过程比较蜿蜒,记录一下。首先说下必备的工具及代码:MSYS-1.0.11.exe,交叉环境,推荐安装版的,会自动配置好环境变量,最后我会提供下载地址,很小,...原创 2018-04-07 09:26:14 · 3334 阅读 · 19 评论 -
VS2017使用项目管理编译Nginx与RTMP Module
本项目已开源,地址:https://github.com/Car-eye-team/Car-eye-RTMP-server/tree/master/source/nginx_windows继昨天利用VS的命令工具nmake工具将nginx编译通过后就心思如何利用VS项目对nginx进行管理编译,网上资料不多,自己摸索吧,没想到不是很难,记录一下。使用VS2017创建一个空的Console项目,将里...原创 2018-04-07 15:31:49 · 1702 阅读 · 1 评论 -
car-eye server 开发之 Nginx RTMP server
转自:https://blog.csdn.net/Car_eye/article/details/79847666car-eye 开源团队平台开始是基于RTSP协议开发的。在做好了RTSP和RTMP推送和播放两端的库和demo之后,我们决定启动RTMP服务器的开发。nginx RTMP是俄罗斯战斗民族开发一个高性能的RTMP服务器,现在已经停止维护。他的强大在于Nginx的稳定性和高并发性。先将代...转载 2018-04-08 10:20:38 · 327 阅读 · 0 评论 -
WIN10下使用VS2017的MSVC编译FFMPEG3.4.2动态静态库
之前在Win10下成功编译nginx给了我不少信心,这两天尝试在Win10下编译FFMPEG,没想到给捣鼓成功了,记录一下。首先下载MINGW,这个文章最后放我打包好的下载地址,直接将压缩包解压到C盘根目录下即可,即安装目录为C:\MinGW里面已经包含了编译FFMPEG所需要的工具。解压好后进到目录C:\MinGW\msys\1.0下,对msys.bat文件进行编辑第二行路径修改为你安装的VS2...原创 2018-04-10 11:18:30 · 6448 阅读 · 0 评论 -
Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
原文:https://blog.csdn.net/car_eye/article/details/79951950nginx-rtmp-mudule RTMP 是一款优秀的RTMP服务器,客户端采用FLASH插件或者HLS,但flash插件消耗资源大,HLS延迟严重。nginx-rtmp-mudule 不支持HTTP方式的FLV直播。Car-eye-http-flv-module 是在nginx-...转载 2018-04-15 20:02:56 · 460 阅读 · 0 评论 -
CarEye推流库中对于MP4文件推送的优化心得
之前的CarEye推流库推送MP4文件的逻辑是创建推送通道成功后就一直推送媒体流到队列中,然后推送线程读取队列信息进行推送,跟推送实时媒体流数据是一个逻辑,不过后来发现这样会造成这么一个问题,当网络不好的时候会丢帧,推送文件毕竟不同于推送实时流,用户是需要看到完整影像的,基于此点进行逻辑的优化:开始的时候在解码线程中进行推流通道的网络状态检测,如果断网则暂停推送,恢复连接后就继续推送,这样实施起来...原创 2018-04-04 14:27:54 · 443 阅读 · 0 评论 -
Car-eye 开源平台基于JT/T 1078 视频协议打造功能强大的车联网管理平台
随着5G时代的来临,车辆管理平台开始慢慢把车载视频作为一个标准而制定。JT/T1078 是国家交通部制定的基于JT/T808 协议的视频补充协议。Car-eye 开源平台为此打造了功能强大的视频服务器和管理系统。整个系统的框架如下: 整个框架将设备,客户端,视频服务器,管理平台和数据库,政府监管平台几方有效的结合起来。其中使用成熟有效的socket框架和功能强大稳定的流媒体服...转载 2018-08-17 10:05:16 · 691 阅读 · 0 评论 -
基于libVlc开发Winform视频播放器
最近在开发视频播放以及RTSP流媒体播放相关功能,接触到了libVlc库,赞叹其强大的同时也感叹C#调用其的困难,不过还好有了Vlc.DotNet开源库,这里记录下开发经历.开始使用时并没发现什么问题,但是当仔细整理功能后发现问题不少,而且莫名其妙的出现,下面罗列一下:1、界面上点击按钮弹出文件选择对话框后,判断DialogResult.Ok后进行文件播放这一个流程下来有一定的几率界面会卡原创 2017-09-30 10:01:36 · 4499 阅读 · 2 评论 -
C#Winform调用EasyDarwin项目中的libEasyPlayer.dll
本想把这个测试项目优化完再写经验的,想想还是现在就记下来吧,到时候再写恐怕都忘的差不多了,言归正传.最近在研究EasyDarwin项目,这个开源项目对车载视频监控项目开发来说真是个福音,起码让我这没有门路的人找到了头绪,下载资源学习了解也不短时间了,但由于当前项目的客户端是基于C#开发的,要想将RTSP播放器集成到当前项目里就得考虑C#调用C++的DLL问题了.现在说下引用libEasyPla原创 2017-09-01 09:15:12 · 3222 阅读 · 1 评论 -
C#Winform调用libEasyPlayer总结
经过一天的调试,Winform调用libEasyPlayer播放RTSP流媒体终于差不多了,留下经验,上一篇已经就怎么调用DLL文件说了,本篇主要讲讲C#项目里具体使用API的情况.代码基本是抄C++的示例项目,没有弄多个窗口,一个窗口测试OK,其它在Winform中也就没问题了.调试过程中出现的一个重要问题是OpenStream函数中的回调函数问题,传入的委托方法中更新UI控件时必须要I原创 2017-09-01 14:31:37 · 1766 阅读 · 0 评论 -
使用配置文件打造可配置的视频服务器转发平台
Car-eye 开源团队在做JT/T视频转发平台的时候需要配置视频服务器的参数。用到TinyXML2,感觉非常好用,能快速完成自己的配置项目。主要功能:实现对服务器的IP,端口,音视频参数的配置。可以采用一层节点完成设计。配置完成后达到如下效果: <?xml version="1.0" encoding="UTF-8" standalone="no" ?>- <co...转载 2018-08-17 10:07:55 · 299 阅读 · 0 评论