实现输出h264直播流的rtmp服务器 flash直播服务器

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

  RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播、点播、聊天等应用,以及pc、移动、嵌入式等平台,是做流媒体开发经常会接触到的协议。我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端,主要侧重在“采集-编码-rtmp发布”这样的流程。这篇文章的主要内容是和大家分享下,做一个简单的、输出H.264直播流的rtmp server,需要实现哪些功能和步骤。

常见的rtmp服务器

  有很多知名的rtmp server,其中既有商业程序也有开源程序,简单列举如下:

  开源项目

  商业程序

  当然,还有一些其他的开源、商业rtmp服务器(如ffserver),我就不一一列举了。我并没有一一尝试,不过,从它们的声明来看,一般来说,商业rtmp程序要比开源程序支持更多的协议以及更多的平台,至于哪个更好,这就不好说了。我比较推荐的是crtmpserver,高性能,号称可以支持“thousands of simultaneous connections”,而且它的开发社区目前很活跃。不过缺点是,代码量有点庞大,而且在不断增加当中。

  rtmp服务器的功能比较复杂,要完整实现比较困难,如果你需要的是一个完整功能的rtmp server,那就可以从它们之中选择一个,如果你的需求和我一样,只是一个简单的、输出H.264直播流的rtmp server,那就需要自己来设计和实现。

rtmp server与播放器的交互

  我们需要实现的是:支持flash播放协议、输出H.264直播流的rtmp server,那么首先,我们必须了解rtmp服务器和flash播放器客户端之间是怎样的一个交互流程。通过阅读《rtmp specification 1.0》就可以了解,我这里把它归纳总结一下。

  基本上一个rtmp server实现了以上6点交互协议,就可以支持flash的播放,顺利的输出h.264视频流。

设计与实现

  知道了交互过程,我们就可以来设计和实现自己的Rtmp服务器了。由于RTMP协议是基于TCP协议的,所以rtmp server本质上就是一个TCP服务器,它的逻辑结构基本上和普通的TCP服务器是类似的。

  事实上,librtmp已经提供了基本的rtmp报文的读取和发送,可以在librtmp的基础上进行开发,来实现各种rtmp协议的组包和发送,从设备、文件或网络中获取到视频数据,封装成Rtmp数据报文,发给flash播放器,完成播放。

  我在另一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”中,已经详细介绍了如何编译和使用librtmp,感兴趣的可以去看一下。那篇文章中谈的是rtmp协议视频发布端,和发布端相同的是,rtmp server向flash播放器发送的视频数据流,也是需要首先发送"AVC sequence header",这其中包含的是重要的编码信息,没有的话,flash播放器将无法解码。下面的代码即是rtmp server收到播放请求之后,从"H264Reader"获取并发送的播放流程。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

转自: haibindev.cnblogs.com

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

时间: 2024-11-08 22:28:45

实现输出h264直播流的rtmp服务器 flash直播服务器的相关文章

实现输出h264直播流的rtmp服务器 flash直播服务器【转】

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

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

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

RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)

一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 HTTP.下面分别介绍下三者的特点. 1,RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP 1个通道上传输命令和数据. 2,RTSP协议 (1)是流媒体协议. (2)R

秒开IPTV系统 实现直播流加速更省外网带宽费用

在互联网时代的推动下,人们接触到越来越多的新名词,例如IPTV,指的是交互式网络电视,即在整合互联网.多媒体.通讯等多种技术于一体的基础上利用宽带有线电视网,向家庭用户提供数字电视等多种交互式服务的崭新技术.武汉秒开网络科技有限公司在这样的技术上进行创新,以秒开直播加速系统为核心构建了秒开IPTV系统,系统内容包括直播源.前端设备(接收与编码).直播加速系统.传输网络.使用终端等,可以帮助用户在普通网络上收看数字电视节目.国际对于IPTV的定义是可控可管安全传输并具有QoS认证的有线或无线Ip网

windows下流媒体nginx-rmtp-module服务器搭建及java程序调用fmpeg将rtsp转rtmp直播流

第一步:首先介绍一下所用相关技术 注:项目中使用的jwplayer插件,不支持rtsp协议,所以使用以下技术来进行转艺 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.在这里我只用到了它的视屏格式转换功能,将rtsp协议的视频流转成rtmp Rtsp协议(实时流传输协议):  公司用的是海康的监控地址为(rtsp://admin:[email protected]/h264/ch1/main/av_stream) 3. Rtmp协议(实时消息传输协议 ):

极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果

在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座打包为webapp后不行,所以直播的话建议还是原生的好.HBuilder自带的H5+有提供了原生的视频播放和推流录制上传,但是需要有一个rtmp直播流服务器,用于测试和开发,这时就需要自建rtmp服务推流了. 极速搭建简单RTMP直播流服务器 开发环境:macOS 需要安装并启动docker:?? 

搭建rtmp直播流服务之4:videoJS/ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用nginx-rtmp搭建直播流媒体服务器,以及使用ffmpeg推流到nginx-rtmp服务器,java通过命令行调用ffmpeg实现推流服务,后端的事情到这里就已经全部完成了. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二次开发就显得很有必要. 一.几种播放器选择 那么播放器,哪些已经不再更新的和收费的,这里不会介绍,只介绍两种轻量级的开源播放器. 1.

洋铭 NVS-25 网络编码器推送RTMP直播流至流媒体系统进行网络直播

"三网融合"已成趋势. 网络电视直播在广电业大力鼓起,各广电媒体.新闻媒体都逐渐开始树立自个的网络电视直播体系.那么如何搭建网络电视台呢? 今天给大家介绍通过洋铭 NVS-25 网络编码器采集电视信号推送标准的RTMP流到流媒体服务器直播系统进行网络分发. 1.  确认电视设备输出接口 ü  HDMI或SDI输出 ü  网络直播流输出 2.  确认洋铭 NVS-25 网络编码器输出形式 NVS-25 为 Datavideo 设计的小尺寸网络直播编码器 , Plug&Play产品

如何推送RTMP直播流至流媒体系统进行网络直播

"三网融合"已成趋势. 网络电视直播在广电业大力鼓起,各广电媒体.新闻媒体都逐渐开始树立自个的网络电视直播体系.那么如何搭建网络电视台呢? 今天给大家介绍通过洋铭 NVS-25 网络编码器采集电视信号推送标准的RTMP流到流媒体服务器直播系统进行网络分发. 1. 确认电视设备输出接口 ü HDMI或SDI输出 ü 网络直播流输出 2. 确认洋铭 NVS-25 网络编码器输出形式 NVS-25 为 Datavideo 设计的小尺寸网络直播编码器 , Plug&Play产品概念使操