博客园 - haibindev
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=52626
2023-07-06T02:29:04Z
haibindev
https://www.cnblogs.com/haibindev/
feed.cnblogs.com
https://www.cnblogs.com/haibindev/p/17531450.html
国标GB28181协议客户端开发(四)实时视频数据传输 - haibindev
本文是《国标GB28181协议设备端开发》系列的第四篇,介绍了实时视频数据传输的过程。通过解读INVITE报文中的SDP信息,读取和解析视频文件或图片文件,进行数据编码,以及h264封装为PS格式,最终通过RTP数据发送,实现了GB28181协议设备端的视频传输功能。本文将逐步详细介绍每个模块的实现步骤和相关技术要点,帮助读者理解和应用GB28181协议进行实时视频传输。
2023-07-06T02:29:00Z
2023-07-06T02:29:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】本文是《国标GB28181协议设备端开发》系列的第四篇,介绍了实时视频数据传输的过程。通过解读INVITE报文中的SDP信息,读取和解析视频文件或图片文件,进行数据编码,以及h264封装为PS格式,最终通过RTP数据发送,实现了GB28181协议设备端的视频传输功能。本文将逐步详细介绍每个模块的实现步骤和相关技术要点,帮助读者理解和应用GB28181协议进行实时视频传输。 <a href="https://www.cnblogs.com/haibindev/p/17531450.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/17519260.html
国标GB28181协议客户端开发(三)查询和实时视频画面 - haibindev
本文是《国标GB28181协议设备端开发》系列的第三篇,探讨了信息查询和实时视频在GB28181协议中的应用。首先,介绍了设备目录查询、设备信息查询和设备状态查询三个重要的信息查询功能,并详细解释了它们在协议中的信令交互流程。随后,深入讨论了实时视频的实现方式,包括数据传输协议和传输规范要求。读者将通过本文了解到GB28181协议设备端开发中信息查询和实时视频的关键知识点。
2023-07-01T06:36:00Z
2023-07-01T06:36:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】本文是《国标GB28181协议设备端开发》系列的第三篇,探讨了信息查询和实时视频在GB28181协议中的应用。首先,介绍了设备目录查询、设备信息查询和设备状态查询三个重要的信息查询功能,并详细解释了它们在协议中的信令交互流程。随后,深入讨论了实时视频的实现方式,包括数据传输协议和传输规范要求。读者将通过本文了解到GB28181协议设备端开发中信息查询和实时视频的关键知识点。 <a href="https://www.cnblogs.com/haibindev/p/17519260.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/17503269.html
国标GB28181协议客户端开发(二)程序架构和注册 - haibindev
本系列文章旨在探讨国标GB28181协议设备端的开发过程。本文将聚焦于架构设计和设备注册,并详细介绍了设备端的程序架构设计、exosip库介绍和接口分类,以及GB28181设备端的注册流程和信令交互报文。通过阅读本文,读者将深入了解GB28181协议设备端的架构设计原则、exosip库的使用方法,以及设备的注册过程和信令交互的关键报文。
2023-06-25T08:31:00Z
2023-06-25T08:31:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】本系列文章旨在探讨国标GB28181协议设备端的开发过程。本文将聚焦于架构设计和设备注册,并详细介绍了设备端的程序架构设计、exosip库介绍和接口分类,以及GB28181设备端的注册流程和信令交互报文。通过阅读本文,读者将深入了解GB28181协议设备端的架构设计原则、exosip库的使用方法,以及设备的注册过程和信令交互的关键报文。 <a href="https://www.cnblogs.com/haibindev/p/17503269.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/17479692.html
国标GB28181协议客户端开发(一)整体流程和技术选型 - haibindev
本系列文章将介绍国标GB28181协议设备端的开发过程。本文旨在探讨整体设计和技术选型方面的考虑,为开发人员提供指导和参考。文章将从设备端开发的整体架构、信令交互流程以及关键技术选型等方面展开讨论,帮助有需要的读者了解和把握GB28181协议设备端开发的要点,掌握开发GB28181协议设备端所需的技术和知识,为实际项目的开发奠定基础。
2023-06-14T03:17:00Z
2023-06-14T03:17:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】本系列文章将介绍国标GB28181协议设备端的开发过程。本文旨在探讨整体设计和技术选型方面的考虑,为开发人员提供指导和参考。文章将从设备端开发的整体架构、信令交互流程以及关键技术选型等方面展开讨论,帮助有需要的读者了解和把握GB28181协议设备端开发的要点,掌握开发GB28181协议设备端所需的技术和知识,为实际项目的开发奠定基础。 <a href="https://www.cnblogs.com/haibindev/p/17479692.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/17291622.html
网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议 - haibindev
WebRTC是一个在WEB浏览器端广泛应用的流媒体引擎,通过点对点的方式实现音视频数据的传输,以完成视频会议等功能。但是考虑到WebRTC主要是为有限人数情况下的点对点视频会议服务,在做其他直播应用的时候,或者接入现有流媒体网络的情况下,并不太适合,可以考虑将浏览器端的WebRTC流,转换为RTMP/GB28181等其他流媒体协议。经过一段时间的研究,已经成功实现了这一功能,这里我介绍一下转换原理。
2023-04-06T01:17:00Z
2023-04-06T01:17:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】WebRTC是一个在WEB浏览器端广泛应用的流媒体引擎,通过点对点的方式实现音视频数据的传输,以完成视频会议等功能。但是考虑到WebRTC主要是为有限人数情况下的点对点视频会议服务,在做其他直播应用的时候,或者接入现有流媒体网络的情况下,并不太适合,可以考虑将浏览器端的WebRTC流,转换为RTMP/GB28181等其他流媒体协议。经过一段时间的研究,已经成功实现了这一功能,这里我介绍一下转换原理。 <a href="https://www.cnblogs.com/haibindev/p/17291622.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/17090607.html
Linux音频采集和在国产化平台中遇到的坑(二) - haibindev
ALSA采集这条路走不通,只能尝试其他途径,这里通过PulseAudio的接口成功实现了国产化平台上采集麦克风和系统声音的功能。
2023-02-03T14:20:00Z
2023-02-03T14:20:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】ALSA采集这条路走不通,只能尝试其他途径,这里通过PulseAudio的接口成功实现了国产化平台上采集麦克风和系统声音的功能。 <a href="https://www.cnblogs.com/haibindev/p/17090607.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/17077965.html
Linux音频采集和在国产化平台中遇到的坑(一) - haibindev
最近在做一个国产化平台的软件项目的开发,是基于国产芯片的银河麒麟系统。其中有一个重要模块,是采集和播放音频数据,播放不用多说了,采集的话,包括采集麦克风和采集桌面系统声音。很多人都觉得银河麒麟不就是linux么,那不直接用ALSA就好了,我原本也是这么想的,但是实际开发下来才发现,还是有各种坑需要自己去趟的。这里我简单记录一下。
2023-01-31T01:53:00Z
2023-01-31T01:53:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】最近在做一个国产化平台的软件项目的开发,是基于国产芯片的银河麒麟系统。其中有一个重要模块,是采集和播放音频数据,播放不用多说了,采集的话,包括采集麦克风和采集桌面系统声音。很多人都觉得银河麒麟不就是linux么,那不直接用ALSA就好了,我原本也是这么想的,但是实际开发下来才发现,还是有各种坑需要自己去趟的。这里我简单记录一下。 <a href="https://www.cnblogs.com/haibindev/p/17077965.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/12081565.html
Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器 - haibindev
最近做了不少android端的开发,有推流、播放、直播、对讲等各种应用,做了RTMP、RTSP、HTTP-FLV、自定义等各种协议,还是有不少收获和心得的。我这边做,核心模块和核心代码部分,都是基于NDK,用C++开发的,然后将so动态库,在Android java环境中使用,这个既能保证核心部分的代码性能,也能最大程度复用之前写的流媒体相关的大量代码,实践证明,这样的程序架构,还是很有效的。这篇文章里,我打算描述一下我对于开发Android端RTSP播放器的程序框架,和设计思路,有相关需求的,希望能借此扩展下思路。
2019-12-23T00:49:00Z
2019-12-23T00:49:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】最近做了不少android端的开发,有推流、播放、直播、对讲等各种应用,做了RTMP、RTSP、HTTP-FLV、自定义等各种协议,还是有不少收获和心得的。我这边做,核心模块和核心代码部分,都是基于NDK,用C++开发的,然后将so动态库,在Android java环境中使用,这个既能保证核心部分的代码性能,也能最大程度复用之前写的流媒体相关的大量代码,实践证明,这样的程序架构,还是很有效的。这篇文章里,我打算描述一下我对于开发Android端RTSP播放器的程序框架,和设计思路,有相关需求的,希望能借此扩展下思路。 <a href="https://www.cnblogs.com/haibindev/p/12081565.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/9503639.html
基于Live555实现RtspServer及高清高分辨率和高码率视频传输优化 - haibindev
最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲。综合考虑后,基本都是在基于live555的基础上进行开发,在进行Live555本身的优化以及程序内部视频数据传输的优化后,不仅实现了需求而且性能还超出预期,实现了8Mbps~10Mbps高码率的1080p高清视频的流畅直播。这里将一些优化点分享一下
2018-08-20T00:47:00Z
2018-08-20T00:47:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲。综合考虑后,基本都是在基于live555的基础上进行开发,在进行Live555本身的优化以及程序内部视频数据传输的优化后,不仅实现了需求而且性能还超出预期,实现了8Mbps~10Mbps高码率的1080p高清视频的流畅直播。这里将一些优化点分享一下 <a href="https://www.cnblogs.com/haibindev/p/9503639.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/9013450.html
[开源]基于ffmpeg和libvlc的视频剪辑、播放器 - haibindev
以前研究的时候,写过一个简单的基于VLC的视频播放器。后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放、视频加减速、视频剪切,视频合并(增加中)等功能在一起。有时候看点网上下载的视频,可以一边看,一边能处理视频前后的广告,感觉也还可以用,就想把它开源出去,一方面希望有需要的朋友可以参考、借鉴,另一方面也希望可以促进它进一步的丰富功能,最终能实现一款简单又够用的视频剪辑软件。
2018-05-09T04:24:00Z
2018-05-09T04:24:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】以前研究的时候,写过一个简单的基于VLC的视频播放器。后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放、视频加减速、视频剪切,视频合并(增加中)等功能在一起。有时候看点网上下载的视频,可以一边看,一边能处理视频前后的广告,感觉也还可以用,就想把它开源出去,一方面希望有需要的朋友可以参考、借鉴,另一方面也希望可以促进它进一步的丰富功能,最终能实现一款简单又够用的视频剪辑软件。 <a href="https://www.cnblogs.com/haibindev/p/9013450.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/8989218.html
Android流媒体开发之路二:NDK C++开发Android端RTMP直播推流程序 - haibindev
经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行h264视频编码和aac音频编码,并发送到RTMP服务器,从而实现Android摄像头直播。程序名为NdkRtmpEncoder,在这里把整个过程,和大体框架介绍一下,算是给需要的人引路。
2018-05-04T02:20:00Z
2018-05-04T02:20:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行h264视频编码和aac音频编码,并发送到RTMP服务器,从而实现Android摄像头直播。程序名为NdkRtmpEncoder,在这里把整个过程,和大体框架介绍一下,算是给需要的人引路。 <a href="https://www.cnblogs.com/haibindev/p/8989218.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/8427503.html
MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片 - haibindev
本文主要介绍了通过虚拟分片技术,把MP4文件,映射为HLS协议中的一个个小的TS分片文件,实现了在不实际切分MP4文件的情况下,通过HLS协议播放MP4文件,从而避免了对MP4进行点播,尤其是大的MP4文件,需要长时间缓冲MP4头部数据的问题,同时可以解决对MP4文件进行切分,会在服务器制造出大量的文件碎片的不利情况。而且本技术,几乎可以不需要对流媒体服务器(HTTP服务)做修改。
2018-02-08T00:31:00Z
2018-02-08T00:31:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】本文主要介绍了通过虚拟分片技术,把MP4文件,映射为HLS协议中的一个个小的TS分片文件,实现了在不实际切分MP4文件的情况下,通过HLS协议播放MP4文件,从而避免了对MP4进行点播,尤其是大的MP4文件,需要长时间缓冲MP4头部数据的问题,同时可以解决对MP4文件进行切分,会在服务器制造出大量的文件碎片的不利情况。而且本技术,几乎可以不需要对流媒体服务器(HTTP服务)做修改。 <a href="https://www.cnblogs.com/haibindev/p/8427503.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/8408598.html
Android流媒体开发之路一:Camera2采集摄像头原始数据并手动预览 - haibindev
最近研究了一下android摄像头开发相关的技术,做了个CamCap程序,实现了在不预览的情况下,获取到摄像头原始数据流,并手动绘制到TextureView上。通过JNI调用libyuv完成YUV420和RGB之间的转换。
2018-02-03T11:20:00Z
2018-02-03T11:20:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】最近研究了一下android摄像头开发相关的技术,做了个CamCap程序,实现了在不预览的情况下,获取到摄像头原始数据流,并手动绘制到TextureView上。通过JNI调用libyuv完成YUV420和RGB之间的转换。 <a href="https://www.cnblogs.com/haibindev/p/8408598.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/8072409.html
DXGI快速截屏录屏技术 - haibindev
DXGI快速截屏录屏技术 概述 很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等。在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套新的接口,叫“Desktop Duplication API”,应用程序,可以通过这套API访问桌面数据
2017-12-20T02:21:00Z
2017-12-20T02:21:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】DXGI快速截屏录屏技术 概述 很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等。在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套新的接口,叫“Desktop Duplication API”,应用程序,可以通过这套API访问桌面数据 <a href="https://www.cnblogs.com/haibindev/p/8072409.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/7918733.html
一个RtspServer的设计与实现和RTSP2.0简介 - haibindev
前段时间着手做了一个RTSP Server,实现多路RTSP流的直播播放,支持H.264和AAC编码,并通过TCP通道进行传输,解决了UDP传输花屏的问题。这里我把主要设计和思考过程,以及实现框架分享一下。并简单介绍下RTSP2.0的区别。因为关注的是直播,这里只讨论RTSP直播协议。
2017-11-29T05:16:00Z
2017-11-29T05:16:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】前段时间着手做了一个RTSP Server,实现多路RTSP流的直播播放,支持H.264和AAC编码,并通过TCP通道进行传输,解决了UDP传输花屏的问题。这里我把主要设计和思考过程,以及实现框架分享一下。并简单介绍下RTSP2.0的区别。因为关注的是直播,这里只讨论RTSP直播协议。 <a href="https://www.cnblogs.com/haibindev/p/7918733.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/3433342.html
调用Live555接收RTSP直播流,转换为Http Live Streaming(iOS直播)协议 - haibindev
RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转换为HLS(Http Live Streaming)直播协议文件的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为HLS协议文件,以实现iPhone或iPad等设备观看RTSP直播源的需求。现在把实现的思路分享如下。
2017-05-17T02:30:00Z
2017-05-17T02:30:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转换为HLS(Http Live Streaming)直播协议文件的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为HLS协议文件,以实现iPhone或iPad等设备观看RTSP直播源的需求。现在把实现的思路分享如下。 <a href="https://www.cnblogs.com/haibindev/p/3433342.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/3466094.html
抛开flash,自己开发实现C++ RTMP直播流播放器 - haibindev
众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中。本人研究并用C++开发实现了RTMP直播流协议的播放器,结合之前做的RTMP直播采集端,可以将RTMP协议完全扩展到C/S形式的应用场景中,这将对之后的通用、全平台的流媒体架构设计和实现,打下坚实的基础。
2013-12-10T01:26:00Z
2013-12-10T01:26:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中。本人研究并用C++开发实现了RTMP直播流协议的播放器,结合之前做的RTMP直播采集端,可以将RTMP协议完全扩展到C/S形式的应用场景中,这将对之后的通用、全平台的流媒体架构设计和实现,打下坚实的基础。 <a href="https://www.cnblogs.com/haibindev/p/3466094.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/p/3434922.html
RTSP协议转换RTMP直播协议 - haibindev
RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。实现的思路分享如下。
2013-11-21T01:50:00Z
2013-11-21T01:50:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。实现的思路分享如下。 <a href="https://www.cnblogs.com/haibindev/p/3434922.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html
HTTP Live Streaming直播(iOS直播)技术分析与实现 - haibindev
前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的HLSLiveEncoder和第三方Http服务器(例如:Nginx),成功实现了HTTP Live Streaming直播,并在iphone上测试通过。我就把这当中的一些收获写在下面。
2013-01-30T03:57:00Z
2013-01-30T03:57:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的HLSLiveEncoder和第三方Http服务器(例如:Nginx),成功实现了HTTP Live Streaming直播,并在iphone上测试通过。我就把这当中的一些收获写在下面。 <a href="https://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/haibindev/archive/2012/04/16/2450989.html
实现输出h264直播流的rtmp服务器 flash直播服务器 - haibindev
我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端,这篇文章的主要内容是和大家分享下,做一个简单的、输出H.264直播流的rtmp server,实现flash直播。
2012-04-16T06:53:00Z
2012-04-16T06:53:00Z
haibindev
https://www.cnblogs.com/haibindev/
【摘要】我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端,这篇文章的主要内容是和大家分享下,做一个简单的、输出H.264直播流的rtmp server,实现flash直播。 <a href="https://www.cnblogs.com/haibindev/archive/2012/04/16/2450989.html" target="_blank">阅读全文</a>