RTMP H.264 ACC
梳理笔记:
采集音频和摄像头视频并实时H264编码及AAC编码 http://www.cnblogs.com/haibindev/archive/2011/11/10/2244442.html
C++实现RTMP协议发送H.264编码及AAC编码的音视频 https://www.cnblogs.com/haibindev/archive/2011/12/29/2305712.html
HTTP Live Streaming直播(iOS直播)技术分析与实现 http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html
实现输出h264直播流的rtmp服务器 http://www.cnblogs.com/haibindev/archive/2012/04/16/2450989.html
摄像头实时直播技术:
- 采集摄像头视频和麦克风音频
- H264编码和AAC编码
- 视频和音频封装成可被流媒体识别的可播放流
- RTMP协议实现报文发送
数据捕获:视频采集Director Show、OpenCV;音频采集OpenAL、PortAudio。
DirectShow是一个windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、 MPEG、AVI、MP3和WAV文件,同时支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。DirectShow整合了其它的 DirectX技术,能自动地侦测并使用可利用的音视频硬件加速,也能支持没有硬件加速的系统。
编码:编码可以选择的余地比较大,对视频来讲,有H264, MPEG-4, WebM/VP8, Theora等,音频有Speex, AAC, Ogg/Vorbis等。可用x264进行H264编码,libfaac进行aac编码。WebM,Google牵头的项目,完全开放和自由,使用VP8和Vorbis编码,webm(mkv)封装,有多家巨头支持,目的是想要取代当前的H264视频编码。
rtmp服务:librtmp已经提供了基本的rtmp报文的读取和发送,可以在librtmp的基础上进行开发,来实现各种rtmp协议的组包和发送,从设备、文件或网络中获取到视频数据,封装成Rtmp数据报文,发给flash播放器,完成播放。