2017年5月17日
摘要: RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转换为HLS(Http Live Streaming)直播协议文件的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为HLS协议文件,以实现iPhone或iPad等设备观看RTSP直播源的需求。现在把实现的思路分享如下。 阅读全文
posted @ 2017-05-17 10:30 haibindev 阅读(13289) 评论(0) 推荐(0) 编辑
  2013年12月10日
摘要: 众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中。本人研究并用C++开发实现了RTMP直播流协议的播放器,结合之前做的RTMP直播采集端,可以将RTMP协议完全扩展到C/S形式的应用场景中,这将对之后的通用、全平台的流媒体架构设计和实现,打下坚实的基础。 阅读全文
posted @ 2013-12-10 09:26 haibindev 阅读(45930) 评论(19) 推荐(20) 编辑
  2013年11月21日
摘要: RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。实现的思路分享如下。 阅读全文
posted @ 2013-11-21 09:50 haibindev 阅读(72349) 评论(5) 推荐(13) 编辑
  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 阅读(169572) 评论(35) 推荐(45) 编辑
  2012年4月16日
摘要: 我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端,这篇文章的主要内容是和大家分享下,做一个简单的、输出H.264直播流的rtmp server,实现flash直播。 阅读全文
posted @ 2012-04-16 14:53 haibindev 阅读(86611) 评论(7) 推荐(12) 编辑
  2012年1月27日
摘要: 过年了,闲来无事,翻阅起以前写的代码,无意间找到了大学时写的一套C++工具集,主要是关于数据结构和算法、以及语言层面的工具类。过去好几年了,现在几乎已经回忆不起当年写代码时的情况,不过,通过文件头部注释里的日期,还是依稀想起了那些日子发生的一些事情,不禁感慨了一番。感概之余,随便翻阅了一下,发现当年的编程手法和现在相比,略显稚嫩,风格也相差的比较大了,明显受到当时读的一些经典C++书籍的影响。不过好在代码质量都算可以,都属于基础的语言层面以及数据结构的代码,操作指针比较小心,每个类也都有测试的样例,感觉对初学者应该会有用,于是拿到这里放出来,希望能对准备学习和正在学习C++语言编程的朋友有所裨益。 阅读全文
posted @ 2012-01-27 10:19 haibindev 阅读(37735) 评论(11) 推荐(8) 编辑
  2012年1月14日
摘要: RTP协议实现音视频网络实时直播,采用H.264和AAC编码,码率极低,同时有较高的视频清晰度和音频音质,可用于视频聊天、视频会议、摄像头监控等多种应用场景。服务器端支持Windows和Linux双平台。 阅读全文
posted @ 2012-01-14 21:26 haibindev 阅读(17994) 评论(3) 推荐(2) 编辑
  2011年12月29日
摘要: 本人实现了一个RTMPLiveEncoder,通过采集摄像头视频和麦克风音频,并进行H.264和AAC编码,然后发送到FMS上,实现实时直播,可以通过flash player正常观看。本文就介绍一下RTMPLiveEncoder的主要思路和关键点,以期对需要这方面技术的朋友有所帮助。 阅读全文
posted @ 2011-12-29 14:38 haibindev 阅读(138117) 评论(39) 推荐(20) 编辑
  2011年12月21日
摘要: 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的万能视频播放器,与大家分享一下。说它“万能”,当然是因为我们站在了vlc的肩膀上。 阅读全文
posted @ 2011-12-21 18:58 haibindev 阅读(115430) 评论(105) 推荐(27) 编辑
摘要: 我之前有篇文章介绍过如果实现一个C/S模式的Flv点播系统,Flv格式简单,处理起来也比较轻松,不过,实际工作中,需要点播的影片,岂会只有Flv这一种格式。我们常见的几种视频格式,随便哪一个都要比Flv复杂的多,尤其是本身设计的时候就没有考虑到要通过网络观看的格式,要实现点播,自然要比Flv难的多。当然,你可以把所有影片都转成Flv格式来处理,可是,当你拥有成千上万部影片的时候,不但得一个个转换,还要一个个检查是否转换成功、转换质量如何等,那工作量可不是一点半点。从这点考虑出发,做一个支持多种视频格式的点播系统,就显得很有必要了。 阅读全文
posted @ 2011-12-21 11:32 haibindev 阅读(10592) 评论(11) 推荐(4) 编辑
  2011年12月7日
摘要: 混音,顾名思义,就是把多个音源混合的过程,是一个很常见的应用。这两天我也做了一个双路混音器,当然,我没有做多么专业的音频信号处理,只是一个简单的混音,调节各路音量,并实现了一些音效处理。主要功能有:采集硬件设备,读取wav文件,播放,混音,音量调节,音频节奏、音调的调节,wav文件输出。 这里我和大家分享一下这个混音器的设计思路。 阅读全文
posted @ 2011-12-07 09:26 haibindev 阅读(14511) 评论(7) 推荐(4) 编辑
  2011年12月2日
摘要: 前段时间猪八戒网站改版了,我把小八戒也更新了一下,以适应他们新的版面。 界面还是那样,没有做其它的更改。其实本来打算做出来2.0之后再发布的,但是因为这段时间太忙,没有时间去开发2.0,就先把1.5放出来了。至少现在是可以用的,呵呵。 阅读全文
posted @ 2011-12-02 20:04 haibindev 阅读(2852) 评论(1) 推荐(1) 编辑
  2011年12月1日
摘要: FFmpeg是一个开源且跨平台的音视频解决方案,集采集、转码、流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格式,是做媒体相关开发工作必须要掌握和借鉴的一个项目。定制和编译ffmpeg是做流媒体开发迟早要面对的,linux平台上相对简单,windows平台就比较麻烦了。本文的目的就是详细介绍下如何基于ubuntu交叉编译环境,编译和定制ffmpeg。 阅读全文
posted @ 2011-12-01 10:29 haibindev 阅读(20946) 评论(9) 推荐(4) 编辑
  2011年11月10日
摘要: 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法。那种方法有一些局限性,不适合实时性质的应用,如:视频会议、视频聊天、视频监控等。本文所使用的技术,适用于这种实时性的应用,通过处理采集出来的音视频的每一帧,实现实时编码,实时输出。这是我做直播系列应用的一部分,目前的情况是输入端采用DirectShow技术捕获音视频,然后对视频进行h.264编码,对音频进行aac编码,输出端则是生成文件,接下来还要进一步扩展输入端和输出端,以支持文件、桌面输入,RTSP、RTMP、HTTP等流式协议输出。 阅读全文
posted @ 2011-11-10 14:42 haibindev 阅读(71854) 评论(35) 推荐(8) 编辑
  2011年11月7日
摘要: 做了一个软件,采集音视频并进行简单加工处理,主要功能如下: 捕获采集摄像头和麦克风,并生成文件 为采集的视频添加字幕 为采集的视频添加背景音乐,并可以调整音量 添加片头和片尾视频 可以设置输出文件格式(FLV和MP4)和宽、高、帧率等 阅读全文
posted @ 2011-11-07 13:30 haibindev 阅读(11002) 评论(5) 推荐(0) 编辑