当前位置: 首页 > news >正文

怎么自己开个免费网站快站模板

怎么自己开个免费网站,快站模板,全面的聊城网站建设,中国水土保持生态环境建设网站RTMP协议发送H.264编码及AAC编码的音视频#xff0c;实现摄像头直播 摘要: RTMP协议发送H.264编码及AAC编码的音视频#xff0c;实现摄像头直播  RTMP#xff08;Real Time Messaging Protocol#xff09;是专门用来传输音视频数据的流媒体协议#xff0c;最初由Macrome… RTMP协议发送H.264编码及AAC编码的音视频实现摄像头直播 摘要: RTMP协议发送H.264编码及AAC编码的音视频实现摄像头直播  RTMPReal Time Messaging Protocol是专门用来传输音视频数据的流媒体协议最初由Macromedia 公司创建后来归Adobe公司所有是一种私有协议主要 ... RTMP协议发送H.264编码及AAC编码的音视频实现摄像头直播   RTMPReal Time Messaging Protocol是专门用来传输音视频数据的流媒体协议最初由Macromedia 公司创建后来归Adobe公司所有是一种私有协议主要用来联系Flash Player和RtmpServer如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用通过FMLEFlash Media Live Encoder推送音视频数据至RtmpServer可实现摄像头实时直播。不过毕竟FMLE应用范围有限想要把它嵌入到自己的程序中还是要自己来实现RTMP协议的推送。本人实现了一个RTMPLiveEncoder通过采集摄像头视频和麦克风音频并进行H.264和AAC编码然后发送到FMS和crtmpserver上实现实时直播可以通过flash player正常观看目前效果良好延迟时间在2秒左右。本文就介绍一下RTMPLiveEncoder的主要思路和关键点以期对需要这方面技术的朋友有所帮助。 技术分析   要实现RTMPLiveEncoder需要以下四种关键技术 采集摄像头视频和麦克风音频 H264编码和AAC编码 视频和音频数据封装为可被流媒体服务器识别的可播放流 RTMP协议实现报文发送   其中前两项技术在我之前的文章“采集音频和摄像头视频并实时H264编码和AAC编码”中已经介绍过了这里就不再啰嗦了。   把音视频数据封装为可播放流这个是一个难点。仔细研究一下你会发现RTMP Packet中封装的音视频数据流其实和FLV封装音频和视频数据的方式是相同的所以我们只需要按照FLV封装H264和AAC的方式即可生成可播放流。   我们再看一下RTMP协议。Adobe曾经发布过一份文档《RTMP Specification》不过wikipedia指出这份文档隐藏了很多细节单独根据它是无法正确实现RTMP的。不过它还是有参考意义的。其实Adobe发布之前RTMP协议就已经被破解的差不多了现在也已经有比较完善的实现比如RTMPDump它提供的是C语言的接口这意味着可以很方便的在其他语言中调用。 程序框架   与我之前写的“采集音频和摄像头视频并实时H264编码和AAC编码”这篇文章相同采用DirectShow技术来实现音视频采集音频编码和视频编码在各自线程AudioEncoderThread和VideoEncoderThread中循环进行RTMP的推送另起一个线程RtmpThread。两个编码线程实时编码音视频数据后将数据交与Rtmp线程由Rtmp线程循环封装为Rtmp Packet然后发出去。   线程之间的数据交换通过一个队列DataBufferQueue来实现。AudioEncoderThread和VideoEncoderThread把数据指针post到DataBufferQueue之后立即返回这样就可以避免因为发送Rtmp报文的而影响到编码线程的正常执行时间。        RtmpThread的主要工作就是发送音频数据流的解码信息头和视频数据流的解码信息头并不断从DataBufferQueue中取出数据封装为RTMP Packet发送出去。流程如下列代码所示process_buf_queue_即是上图中的DataBufferQueue librtmp 一、编译librtmp   下载rtmpdump的代码你会发现它是一个地道的linux项目除了一个简单的Makefile其他什么都没有。好像librtmp不依赖于系统我们可以不用费太多功夫把它在windows上编译。不过librtmp依赖于openssl和zlib我们需要首先编译好它们。   1. 编译openssl1.0.0e   a) 下载并安装ActivePerl   b) 下载并安装nasm(http://nasm.sourceforge.net/)   c) 解压openssl压缩包   d) 运行cmd命令行切到openssl目录分别执行以下命令 perl Configure VC-WIN32 --prefixc:\some\dirms\do_nasm   e) 运行Visual Studio Command Prompt(2010)切到openssl目录分别执行以下命令。 nmake -f ms\nt.maknmake -f ms\nt.mak install   f) 编译完毕后即可在第一个命令所指定的目录下发现编译好的sdk。   2. 编译zlib   a) 解压zlib压缩包   b) 运行Visual Studio Command Prompt(2010)切到openssl目录分别执行以下命令 cd contrib\masmx86bld_ml32.bat   c) 回到zlib目录进入contrib\vstudio\vc10目录打开vs2010解决方案文件      在zlibstat工程属性中去掉预编译宏 ZLIB_WINAPI   d) 选择debug或release编译即可   3. 编译librtmp   a) 首先打开visual studio 2010新建一个win32 console工程指定为静态链接库   b) 将librtmp的代码导入工程把openssl、zlib的头文件和librtmp放在一起把编译好的openssl和zlib的静态库放在一起            c) 在工程设置中添加之前编译好的openssl和zlib的库编译即可。      二、librtmp的使用   首先初始化RTMP结构   开始之后就要向RTMP Server发起握手连接报文   连接成功就可以开始循环发送报文了这里需要指定时戳和数据类型Audio、Video、Metadata。这里有一点需要注意的是在调用Send之前buf中的数据必须是已经封装好的H264或AAC数据流具体见下面的介绍。   关闭   最后是释放   H264和AAC数据流   本文提到过RTMP推送的音视频流的封装形式和FLV格式相似由此可知向FMS推送H264和AAC直播流需要首先发送AVC sequence header和AAC sequence header这两项数据包含的是重要的编码信息没有它们解码器将无法解码。   AVC sequence header就是AVCDecoderConfigurationRecord结构该结构在标准文档“ISO-14496-15 AVC file format”中有详细说明。        AAC sequence header存放的是AudioSpecificConfig结构该结构则在“ISO-14496-3 Audio”中描述。AudioSpecificConfig结构的描述非常复杂这里我做一下简化事先设定要将要编码的音频格式其中选择AAC-LC为音频编码音频采样率为44100于是AudioSpecificConfig简化为下表        这样AVC sequence header和AAC sequence header的内容可以基本确定了更详细的信息大家可以去翻阅相关文档。接下来就是封装数据内容然后交给librtmp发送。封装格式如下所示      运行效果   RtmpLiveEncoder开始运行        用FMS自带的一个flash播放器播放          HaibinDev软件工作室合作请联系QQ。转载请注明作者和出处~ posted on 2012-11-07 14:32 小小程序员001 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/musicfans/archive/2012/11/07/2819290.html
http://www.pierceye.com/news/624382/

相关文章:

  • 南昌专业的企业网站建设公司wordpress源码在哪
  • 农家院做宣传应该在哪个网站营销代码查询
  • 大型企业网站设计案例晋江做网站的公司哪家好
  • 海外模板网站有哪些全国网页设计大赛
  • 网站设计常州注册公司没有地址怎么弄
  • 注销建设工程规划许可证在哪个网站wordpress+Apache升级
  • 视频网站如何做盗链青岛商城网站开发
  • 网站主色调googleapis wordpress
  • 作网站番禺区网络推广渠道
  • app开发网站排行app制作平台排行
  • 盐城网站建设找哪家好个人如何做短视频网站
  • 域名进行网站备案吗2023年重启核酸
  • 为什么几年前做的网站视频看不了wordpress图片标签
  • 做照片用的视频模板下载网站好网站源代码购买
  • 网站rss生成上海网页网络技术有限公司
  • 白山北京网站建设遂宁网站优化
  • 青岛网站建站公司银川网站建站公司
  • 做海报哪个网站的素材多成都私人放款联系方式电话
  • 黑河市网站建设公司广州好的网站建设
  • 番禺网站建设培训班做网站需要具备的基础条件
  • seo网站排名后退网站效果检测
  • 郑州做网站加密的公司免费logo设计生成器在线制作
  • 免费app软件下载网站公司网站定位建议
  • 如何选取网站关键词外贸商城网站建设
  • 网站的排名与权重电商平台运营是做什么
  • 网站建设的er图做兼职的网站策划书
  • 做隐私的网站大型网站制作报价
  • 保康网站建设psd转wordpress主题
  • 网站开发远程服务器如何设置三河市网站建设
  • 网站开发与运营方向已经有域名 怎么做网站