随笔 - 33  文章 - 0  评论 - 492 
  2018年8月20日
摘要: 最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲。综合考虑后,基本都是在基于live555的基础上进行开发,在进行Live555本身的优化以及程序内部视频数据传输的优化后,不仅实现了需求而且性能还超出预期,实现了8Mbps~10Mbps高码率的1080p高清视频的流畅直播。这里将一些优化点分享一下阅读全文
posted @ 2018-08-20 08:47 haibindev 阅读(5504) 评论(1) 编辑
  2018年5月9日
摘要: 以前研究的时候,写过一个简单的基于VLC的视频播放器。后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放、视频加减速、视频剪切,视频合并(增加中)等功能在一起。有时候看点网上下载的视频,可以一边看,一边能处理视频前后的广告,感觉也还可以用,就想把它开源出去,一方面希望有需要的朋友可以参考、借鉴,另一方面也希望可以促进它进一步的丰富功能,最终能实现一款简单又够用的视频剪辑软件。阅读全文
posted @ 2018-05-09 12:24 haibindev 阅读(2391) 评论(2) 编辑
  2018年5月4日
摘要: 经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行h264视频编码和aac音频编码,并发送到RTMP服务器,从而实现Android摄像头直播。程序名为NdkRtmpEncoder,在这里把整个过程,和大体框架介绍一下,算是给需要的人引路。阅读全文
posted @ 2018-05-04 10:20 haibindev 阅读(2772) 评论(6) 编辑
  2018年2月8日
摘要: 本文主要介绍了通过虚拟分片技术,把MP4文件,映射为HLS协议中的一个个小的TS分片文件,实现了在不实际切分MP4文件的情况下,通过HLS协议播放MP4文件,从而避免了对MP4进行点播,尤其是大的MP4文件,需要长时间缓冲MP4头部数据的问题,同时可以解决对MP4文件进行切分,会在服务器制造出大量的文件碎片的不利情况。而且本技术,几乎可以不需要对流媒体服务器(HTTP服务)做修改。阅读全文
posted @ 2018-02-08 08:31 haibindev 阅读(4786) 评论(8) 编辑
  2018年2月3日
摘要: 最近研究了一下android摄像头开发相关的技术,做了个CamCap程序,实现了在不预览的情况下,获取到摄像头原始数据流,并手动绘制到TextureView上。通过JNI调用libyuv完成YUV420和RGB之间的转换。阅读全文
posted @ 2018-02-03 19:20 haibindev 阅读(15688) 评论(2) 编辑
  2017年12月20日
摘要: DXGI快速截屏录屏技术 概述   很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等。在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套新的接口,叫“Desktop Duplication API”,应用程序,可以通阅读全文
posted @ 2017-12-20 10:21 haibindev 阅读(4170) 评论(1) 编辑
  2017年11月29日
摘要: 前段时间着手做了一个RTSP Server,实现多路RTSP流的直播播放,支持H.264和AAC编码,并通过TCP通道进行传输,解决了UDP传输花屏的问题。这里我把主要设计和思考过程,以及实现框架分享一下。并简单介绍下RTSP2.0的区别。因为关注的是直播,这里只讨论RTSP直播协议。阅读全文
posted @ 2017-11-29 13:16 haibindev 阅读(10018) 评论(2) 编辑
  2017年5月17日
摘要: RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转换为HLS(Http Live Streaming)直播协议文件的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为HLS协议文件,以实现iPhone或iPad等设备观看RTSP直播源的需求。现在把实现的思路分享如下。阅读全文
posted @ 2017-05-17 10:30 haibindev 阅读(7368) 评论(0) 编辑
  2013年12月10日
摘要: 众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中。本人研究并用C++开发实现了RTMP直播流协议的播放器,结合之前做的RTMP直播采集端,可以将RTMP协议完全扩展到C/S形式的应用场景中,这将对之后的通用、全平台的流媒体架构设计和实现,打下坚实的基础。阅读全文
posted @ 2013-12-10 09:26 haibindev 阅读(39853) 评论(19) 编辑
  2013年11月21日
摘要: RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。实现的思路分享如下。阅读全文
posted @ 2013-11-21 09:50 haibindev 阅读(52873) 评论(5) 编辑
  2013年1月30日
摘要: 前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的HLSLiveEncoder和第三方Http服务器(例如:Nginx),成功实现了HTTP Live Streaming直播,并在iphone上测试通过。我就把这当中的一些收获写在下面。阅读全文
posted @ 2013-01-30 11:57 haibindev 阅读(161851) 评论(35) 编辑
  2012年4月16日
摘要: 我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端,这篇文章的主要内容是和大家分享下,做一个简单的、输出H.264直播流的rtmp server,实现flash直播。阅读全文
posted @ 2012-04-16 14:53 haibindev 阅读(83748) 评论(7) 编辑
  2012年1月27日
摘要: 过年了,闲来无事,翻阅起以前写的代码,无意间找到了大学时写的一套C++工具集,主要是关于数据结构和算法、以及语言层面的工具类。过去好几年了,现在几乎已经回忆不起当年写代码时的情况,不过,通过文件头部注释里的日期,还是依稀想起了那些日子发生的一些事情,不禁感慨了一番。感概之余,随便翻阅了一下,发现当年的编程手法和现在相比,略显稚嫩,风格也相差的比较大了,明显受到当时读的一些经典C++书籍的影响。不过好在代码质量都算可以,都属于基础的语言层面以及数据结构的代码,操作指针比较小心,每个类也都有测试的样例,感觉对初学者应该会有用,于是拿到这里放出来,希望能对准备学习和正在学习C++语言编程的朋友有所裨益。阅读全文
posted @ 2012-01-27 10:19 haibindev 阅读(33877) 评论(11) 编辑
  2012年1月14日
摘要: RTP协议实现音视频网络实时直播,采用H.264和AAC编码,码率极低,同时有较高的视频清晰度和音频音质,可用于视频聊天、视频会议、摄像头监控等多种应用场景。服务器端支持Windows和Linux双平台。阅读全文
posted @ 2012-01-14 21:26 haibindev 阅读(16101) 评论(3) 编辑
  2011年12月29日
摘要: 本人实现了一个RTMPLiveEncoder,通过采集摄像头视频和麦克风音频,并进行H.264和AAC编码,然后发送到FMS上,实现实时直播,可以通过flash player正常观看。本文就介绍一下RTMPLiveEncoder的主要思路和关键点,以期对需要这方面技术的朋友有所帮助。阅读全文
posted @ 2011-12-29 14:38 haibindev 阅读(120462) 评论(39) 编辑