自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十五年专注直播点播、网络视频技术,haibindev.cnblogs.com

国产化平台流媒体系统、直播监控、视频通话、视频会议、网络音视频传输、RTMP/RTSP/GB28181/HTTPFLV/WEBRTC/UDP等各种网络协议;Windows/Linux/Android/IOS/ARM/统信UOS/银河kylin等平台开发

  • 博客(32)
  • 资源 (7)
  • 收藏
  • 关注

原创 国标GB28181协议客户端开发(四)实时视频数据传输

本文是《国标GB28181协议设备端开发》系列的第四篇,介绍了实时视频数据传输的过程。通过解读INVITE报文中的SDP信息,读取和解析视频文件或图片文件,进行数据编码,以及h264封装为PS格式,最终通过RTP数据发送,实现了GB28181协议设备端的视频传输功能。本文将逐步详细介绍每个模块的实现步骤和相关技术要点,帮助读者理解和应用GB28181协议进行实时视频传输。

2023-07-06 10:35:40 1193

原创 国标GB28181协议客户端开发(三)查询和实时视频画面

本文是《国标GB28181协议设备端开发》系列的第三篇,探讨了信息查询和实时视频在GB28181协议中的应用。首先,介绍了设备目录查询、设备信息查询和设备状态查询三个重要的信息查询功能,并详细解释了它们在协议中的信令交互流程。随后,深入讨论了实时视频的实现方式,包括数据传输协议和传输规范要求。读者将通过本文了解到GB28181协议设备端开发中信息查询和实时视频的关键知识点。

2023-07-02 10:38:45 747

原创 国标GB28181协议客户端开发(二)程序架构和注册

本系列文章旨在探讨国标GB28181协议设备端的开发过程。本文将聚焦于架构设计和设备注册,并详细介绍了设备端的程序架构设计、exosip库介绍和接口分类,以及GB28181设备端的注册流程和信令交互报文。通过阅读本文,读者将深入了解GB28181协议设备端的架构设计原则、exosip库的使用方法,以及设备的注册过程和信令交互的关键报文。

2023-06-25 16:40:48 1145

原创 国标GB28181协议客户端开发(一)整体流程和技术选型

本系列文章将介绍国标GB28181协议设备端的开发过程。本文旨在探讨整体设计和技术选型方面的考虑,为开发人员提供指导和参考。文章将从设备端开发的整体架构、信令交互流程以及关键技术选型等方面展开讨论,帮助有需要的读者了解和把握GB28181协议设备端开发的要点,掌握开发GB28181协议设备端所需的技术和知识,为实际项目的开发奠定基础。

2023-06-15 11:08:40 2148 1

原创 网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议

WebRTC是一个在WEB浏览器端广泛应用的流媒体引擎,通过点对点的方式实现音视频数据的传输,以完成视频会议等功能。但是考虑到WebRTC主要是为有限人数情况下的点对点视频会议服务,在做其他直播应用的时候,或者接入现有流媒体网络的情况下,并不太适合,可以考虑将浏览器端的WebRTC流,转换为RTMP/GB28181等其他流媒体协议。经过一段时间的研究,已经成功实现了这一功能,这里我介绍一下转换原理。

2023-04-06 09:23:23 639

原创 Linux音频采集和在国产化平台中遇到的坑(二)

ALSA采集这条路走不通,只能尝试其他途径,这里通过PulseAudio的接口成功实现了国产化平台上采集麦克风和系统声音的功能。

2023-02-03 22:23:29 765

原创 Linux音频采集和在国产化平台中遇到的坑(一)

最近在做一个国产化平台的软件项目的开发,是基于国产芯片的银河麒麟系统。其中有一个重要模块,是采集和播放音频数据,播放不用多说了,采集的话,包括采集麦克风和采集桌面系统声音。很多人都觉得银河麒麟不就是linux么,那不直接用ALSA就好了,我原本也是这么想的,但是实际开发下来才发现,还是有各种坑需要自己去趟的。这里我简单记录一下。

2023-01-31 10:06:21 456

原创 Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

基于NDK开发Android平台RTSP播放器最近做了不少android端的开发,有推流、播放、直播、对讲等各种应用,做了RTMP、RTSP、HTTP-FLV、自定义等各种协议,还是有不少收获和心得的。我这边做,核心模块和核心代码部分,都是基于NDK,用C++开发的,然后将so动态库,在Android java环境中使用,这个既能保证核心部分的代码性能,也能最大程度复用之前写的流媒体相关的大量...

2019-12-23 09:29:59 793

原创 基于Live555实现RtspServer及高清高分辨率高码率视频传输优化

基于Live555实现RtspServer及高清高分辨率超高码率视频传输优化最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲。综合考虑后,基本都是在基于live555的基础上进行开发,在进行Live555本身的优化以及程序内部视频数据传输的优化后,不仅实现了需求而且性能还超出预期,实现了10Mbps高码率的1080p以上分辨率的高清视频的流畅直...

2018-11-15 11:45:50 678

原创 [开源]基于ffmpeg和libvlc的视频剪辑、播放器

[开源]基于ffmpeg和libvlc的视频剪辑、播放器以前研究的时候,写过一个简单的基于VLC的视频播放器。后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放、视频加减速、视频剪切,视频合并(增加中)等功能在一起。有时候看点网上下载的视频,可以一边看,一边能处理视频前后的广告,感觉也还可以用,就想把它开源出去,一方面希望有需要的朋友可以参考、借鉴,另一方面也...

2018-11-15 11:39:16 376

原创 Android流媒体开发之路二:NDK C++开发Android端RTMP直播推流程序

NDK开发Android端RTMP直播推流程序经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行h264视频编码和aac音频编码,并发送到RTMP服务器,从而实现Android摄像头直播。程序名为NdkRtmpEncoder,在这里把整个过程,和大体框架介绍一下,算是给需要的人引路。开发思...

2018-11-15 11:27:27 433

原创 MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片

MP4大文件虚拟HLS分片技术,避免点播服务器的文件碎片本文主要介绍了通过虚拟分片技术,把MP4文件,映射为HLS协议中的一个个小的TS分片文件,实现了在不实际切分MP4文件的情况下,通过HLS协议播放MP4文件,从而避免了对MP4进行点播,尤其是大的MP4文件,需要长时间缓冲MP4头部数据的问题,同时可以解决对MP4文件进行切分,会在服务器制造出大量的文件碎片的不利情况。而且本技术,几乎可以...

2018-11-15 11:18:42 1279

原创 Android流媒体开发之路一:Camera2采集摄像头原始数据并手动预览

Android Camera2采集摄像头原始数据并手动预览最近研究了一下android摄像头开发相关的技术,也看了Google提供的Camera2Basic调用示例,以及网上一部分代码,但都是在TextureView等预览基础上实现,而我想要做的是在不预览的情况下,能获取到摄像头原始数据流,并由自己来决定是否绘制显示。经过一番折腾,初步实现了自己的目的——CamCap程序。需求分析  其...

2018-11-15 11:10:40 2295

原创 DXGI快速截屏录屏技术,高帧率直播桌面

DXGI快速截屏录屏技术概述  很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等。在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套新的接口,叫“Desktop Duplication API”,应用程序,可以通过这套API访问桌面数据。而由于Desktop Duplication API是通过Microsoft DirectX ...

2018-11-14 10:06:22 21608 12

原创 一个RtspServer的设计与实现和RTSP2.0简介

  前段时间着手实现了一个RTSP Server,能够正常实现多路RTSP流的直播播放,因项目需要,只做了对H.264和AAC编码的支持,但是相信其他编码的实现基本逻辑也是想通的。这里我把主要设计和思考过程,以及实现框架分享一下。因为关注的是直播,这里只讨论RTSP直播协议。RTSP协议概述与RTSP2.0  众所周知,RTSP协议是一个流媒体协议,可以实现直播和点播形式的音频与视频流...

2018-11-14 10:00:44 365 1

原创 Live555接收RTSP直播流,转换Http Live Streaming(HLS直播)协议

  RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转换为HLS(Http Live Streaming)直播协议文件的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为HLS协议文件,以实现iPhone或iPad等设备观看RTSP直播源的需求。现在把实现的思路分享如下。要点分析  首先,程序的主要目的,是从多路...

2018-11-14 09:54:46 3732

原创 抛开flash,自己开发实现C++ RTMP直播播放器

  众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中。本人研究并用C++开发实现了RTMP直播流协议的播放器(延迟极低,内网可以做到百毫秒,目前已经实现PC端和Android端),结合之前做的RTMP直播采集端,可以将RTMP协议完全扩展到C/S形式的应用场景中,这将对之后的通用、全平台的流媒体架构设计和实现,打下坚实的基础。开发的意义  RTMP...

2018-11-14 09:52:46 1779

原创 RTSP协议转换RTMP协议,直播网络摄像头

  RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。实现的思路分享如下。要点分析 ...

2018-11-14 09:47:23 2448 1

原创 HTTP Live Streaming直播(iOS直播)技术分析与实现

   不经意间发现,大半年没写博客了,自觉汗颜。实则2012后半年(2018年注:这是我以前写的文章,不要奇怪时间了),家中的事一样接着一样发生,实在是没有时间。快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享。  前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,...

2018-11-14 09:38:01 1774

原创 实现直接输出h264直播流的rtmp服务器

RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播、点播、聊天等应用,以及pc、移动、嵌入式等平台,是做流媒体开发经常会接触到的协议。我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频直播”,介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端...

2018-11-14 09:33:24 2068

原创 C++实现RTMP协议发送H.264编码及AAC编码的音视频直播

  RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encode...

2018-11-14 09:18:12 737

原创 设计并实现支持多种格式的流媒体视频点播系统

  我之前有篇文章“如何实现一个c/s模式的flv视频点播系统”介绍过一个C/S模式的Flv点播系统,Flv格式简单,处理起来也比较轻松,不过,实际工作中,需要点播的影片,岂会只有Flv这一种格式。我们常见的几种视频格式,随便哪一个都要比Flv复杂的多,尤其是本身设计的时候就没有考虑到要通过网络观看的格式,要实现点播,自然要比Flv难的多。当然,你可以把所有影片都转成Flv格式来处理,可是,当你...

2018-11-14 09:04:33 1208

原创 借用PortAudio采集和播放音频,实现一个双路混音器

混音,顾名思义,就是把多个音源混合的过程,是一个很常见的应用。这两天我也做了一个双路混音器,当然,我没有做多么专业的音频信号处理,只是一个简单的混音,调节各路音量,并实现了一些音效处理。主要功能有:采集硬件设备,读取wav文件,播放,混音,音量调节,音频节奏、音调的调节,wav文件输出。这么多功能,我们不需要一个一个全部自己实现,有时候,借助开源项目,尤其是比较成熟的开源项目,不但可以大大节省开发...

2018-11-14 09:00:31 574

原创 采集麦克风音频和摄像头视频并实时H264编码及AAC编码

 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法。那种方法有一些局限性,不适合实时性质的应用,如:视频会议、视频聊天、视频监控等。本文所使用的技术,适用于这种实时性的应用,通过处理采集出来的音视频的每一帧,实现实时编码,实时输出。这是我做直播系列应用的一部分,目前的情况是输入端采用DirectShow技术捕获音视频,然后对视频进行h.264编码,对音频进...

2018-11-13 22:43:58 1919

原创 MP4文件格式的解析,以及MP4文件的分割算法

mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“媒体头”。当然,流媒体点播也可以采用flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不推荐这么做,人家说毕竟mp4才是H.264最佳的存储格式嘛。  这几天整理并重构了一下mp4文件的...

2018-11-13 22:39:09 514

原创 DirectShow捕获+mencoder+ffmpeg+sox 打造小巧的音视频制作、加工软件

捕获音视频并进行加工处理,是常见的应用。录制一段小视频,加上广告,贴上字幕,再搞点音乐什么的,可以上传到视频网站上去,不管是做营销宣传,还是纯粹的娱乐目的,都很常见。当然,你可以使用市面上的很多的视频处理软件,不过,很多需要收取较高的费用或者需要破解,搞不好还会中毒。而事实上你可能只需要其中的一部分功能,而有的需求则需要使用几款软件同时合作才能实现。这个时候,做一下软件定制,搞一个完全符合自己需求...

2018-11-13 22:36:57 209

原创 做了一个电驴 p2p资源搜索小软件

写这篇文章的时候,看到有人做了在emule网络内搜索资源的软件,考虑到emule是开源项目,当时一时兴起,自己也做了一个。emule是非常著名的开源项目,分支非常多,amule可以算是它的跨平台版本,界面库采用wxWidget,不过,应该不能算作emule的fork或分支。    比较了一下代码,感觉amule的更好读一些(官网是amule.org,大家可以去了解一下,代码在主页面有链接),所...

2018-11-13 22:34:19 1644

原创 如何实现一个c/s模式的flv视频点播系统

一、写在前面  视频点播,是一个曾经很热,现如今依然很热的一项视频服务技术。本人最近致力于研究将各种视频格式应用于点播系统中,现已研究成功FLV, F4V, MP4, TS格式的视频点播解决方案,完全支持以上格式中存放H.264编码视频的情况,并将继续研究其他格式。  这里有一点需要说明的是,F4V本来指的是Adobe基于ISO/IEC 14496-12标准推出来的视频格式,与MP4格式相...

2018-11-13 22:26:17 360

原创 《c# 实现p2p文件分享与传输系统》 三、 NAT穿透

    上一篇文章介绍了p2p系统Tracker Server和Peer,以及文件描述符,本篇接着讲NAT Server的部分。由于p2p网络中使用udp报文,所以只介绍udp穿透。1. NAT类型  NAT(Network Address Translation, 网络地址转换),是指在IP包通过路由设备时,修改其IP地址信息的技术。一般应用是,通过将内网地址转换为公网地址,从而实现多台...

2018-11-13 22:23:44 506

原创 借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能

用过QQ影音(或其他类似播放器)的可能都知道,QQ影音有一个功能叫“剧情连拍”,可以对一部影片在不同时段进行截图,然后把这些截图放在一张并生成单独的图片。通过剧情图,可以一目了然的看到整部影片的画面风格,也就能大致猜出这部影片的类型,再加上字幕,甚至可以大概猜出影片的故事梗概。本人前些日子针对这个功能做了一些研究,小有成果,先上两张效果图:1. 2.   怎么样,效果还可以吧?...

2018-11-13 22:21:33 725

原创 《c# 实现p2p文件分享与传输系统》 二、 设计

c#实现P2P文件分享与传输系统  二、设计  在上一篇文章中,介绍了P2P网络的常用模型,并确定了EasyP2P系统的框架,本文将就此设计完成它的主要结构和运作流程。1. 首先是Tracker Server和Peer这两个最重要的模块:Tracker Server负责Peer的信息的收集和跟踪,并向下载节点提供其他节点的信息,实际上就是维护“Peer<-->Resourc...

2018-11-13 22:17:00 462

原创 《c# 实现p2p文件分享与传输系统》 一、 模型

c#实现P2P文件分享与传输系统 一、模型  P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享。P2P技术已经发展了很多年了,虽然理论上已经发展了很多的模型,但在实际的网络环境中(尤其是镇里这种环境),究竟怎样的网络结构才具有较好的稳定性和较高的传输性能,还是有很大的争议,每家做P2P的网络公司都会有不同的见解...

2018-11-13 22:12:31 1259

驱动加载工具InstDrv

工具安装调试sys驱动,快速安装WDM驱动程序 用于驱动测试 调试

2018-11-27

在YUV422视频流上叠加滚动字幕

在YUV422视频流上叠加字幕,可以设置位置等,c代码描述

2015-06-11

RTMP协议文档

RTMP协议文档, Adobe官方文档。

2013-08-19

emule 协议说明书

emule 协议说明书 介绍emule协议

2011-05-10

httpclient c++ http 下载

c++写的基于winsock和wininet的httpclient,需要的朋友可以参考一下

2011-05-07

c#仿qq2010客户端

c#写的模仿qq2010界面的客户端软件

2011-05-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除