免费流媒体服务器(AMS3.0 非AdobeMediaServer)

免费流媒体服务器(AMS3.0 非AdobeMediaServer)自己从事流媒体近20载,从没有可用的流媒体服务器到现在服务器遍地开花.但尽管开源服务器众多,功能强大,但却没有可以直接拿来使用的.原因是配置安装困难,没有自己想要的接口,很难与现有系统对接.为解决这个问题,自己就做了一个简单的安装包,并且提供了众多的接口可以与WEB进行对接,这样配置管理大大简化,安装使用都非常简单.服务器单机下保守至少可以大码流3000并发吧,性能非常不错.你可以做集群.提供HTTPRTMP协议,支持HLS.详细可以看下面的使用说…

大家好,又见面了,我是你们的朋友全栈君。

     声明:本博客提供免费软件仅可用于学习研究使用,不可用于传播非法媒体信息,否则自行承担法律后果

        自己从事流媒体近20载, 从没有可用的流媒体服务器到现在服务器遍地开花.  但尽管开源服务器众多,功能强大, 但却没有可以直接拿来使用的. 原因是配置安装困难,没有自己想要的接口,很难与现有系统对接.

       为解决这个问题, 自己就做了一个简单的安装包, 并且提供了众多的接口可以与WEB进行对接, 这样配置管理大大简化, 安装使用都非常简单.让各位玩家自己想玩就玩,呵呵。。。

       服务器单机下保守至少可以大码流3000并发, 性能非常不错.性能超CRtmpServer\FMS, 可以与NGINX-RTMP 相媲美. 比SRS使用更方便. 你可以做集群.提供HTTP RTMP 协议, 支持HLS.   rtmp协议做直播时能保证服务器产生的延迟不大于100毫秒,   目前有一家公司就是使用此服务做书法教学会议互动. 详细可以看下面的使用说明文档.

       我以前就是做流媒体这行的, 现在出于爱好,把核心重新升级完善, 免费贡献给大家使用. 目前北京还有4家公司在使用这个服务器核心做产品, 成都一家, 深圳一家.

      此流媒体服务有Windows版,  但Windows版有诸多的弊端且效率低, 后期我也都没有做同步更新, 你能在网上搜到的AMS KMS 都windows版的产品, 此处我只提供LINUX版流媒体服务核心, 你可以用它来做你自己的产品.

      它是CENTOS6.5中开发, 7.0也能正常运行.       其它系统版自己测试吧, 呵呵!

       欢迎大家来下载使用, 功能完全没有限制, 完全免费. 有问题可以留言.可以提出你宝贵的建议. 

大家有问题留言我会继续修改完善, 然后重新发布, 所以你要是使用, 可以定期上来看看, 下载资源看看版本号是不是改变了,反正我设的是0分  :- )

资源下载(独立使用版)  old-ams-nodependents.rar-直播技术文档类资源-CSDN下载

2021-03-21更新

说明: 如果你只是使用流媒体服务器请下载这个版本, 如果你之前下载过不能用,请重下载,之前传错了版本。有问题请留言。

新版下载

资源下载(平台版) ams-server-2021-8-17.rar-直播技术文档类资源-CSDN下载

 注意:新版本必须要安装完整平台(要把WEB安装完成)才能运行,只装一部分不能正常使用。

    说明:这个版本是配合WEB来形成一套流媒体平台的版本,如果你想自己搭一套完整的流媒体平台,请下载此版版本,其它相关的模块请参考其它博文。我建意大家都下载使用这个版本,你如果只使用流媒体服器可以从WEB后设置一下就可以,不会设置请留言。 这个版本修改了很多的BUG。

2021-4-6 更新

  • 修改图片生成BUG
  • 修改点播更新BUG             

2021-8-8更新

  • 修改了无法生成连续剧的节目的BUG
  • 加入了对中控的认证, 所有中控的相关认证都在此,这个认证授权是建立交互通道的过程。所以如果出现授权的情况,都是由于软件配置有问题。

现在屏幕采集\录像\rtmp推流工具也完成了第二版,所以同步更新一下博文. 

(第二版) 完全免费的屏幕采集\录屏\直播推流的一体化工具_wanghaisheng的专栏-CSDN博客

至此我们离毫秒级延迟又近了一步!! 大家给点鼓励呀, 让我能感觉到自己的价值. 呵呵

                                                                  AMS-SERVER安装与使用说明

                                                                                      MARK

  • 环境与安装

LINUX环境目前在CentOS6.5.x86_64下测试通过.

  1. 安装

ams-server-2.14.2-2.x86_64.rpm 为安装文件.

ffmpeg-4.1.3-5.x86_64.rpm为AMS指定依赖文件,此FFMPEG不是通用FFMPEG

将两文件放入到LINUX下,在同级目录下执行命令完成安装.

命令如下

> rpm -ivh ams-server-2.14.2-6.x86_64.rpm

> rpm -ivh ffmpeg-4.1.3-5.x86_64.rpm

如果是系统是MINI CENTOS版本ffmpeg安装有可能会出现依赖项缺失的情况, 此时可以运行 yum install libxcb* 后再安装ffmpeg, 注意要配好网络.

安装完成后可以在控制台执行如下命令进行操作:

       ams start       启动AMS服务器

ams stop        退出AMS服务器

ams restart     重启AMS服务器

ams reset       恢复运行配置到初始状态, 但通过接口看到的是最后的配置内容, 只有通过接口再次再次运行 set 命令后才会写入到运行配置.

ams reload      重新加载配置文件, 通常在使用接口配置完成服务器后再用此命令重新加载一下,当然也可以直接通过接口直接进行加载.

ams status     可以查看服务器是否在运行.

提供返回值可解析的命令, 可以完成启动停止和状态获取三个功能.

ams if_start    启动AMS服务器,  成功输出0, 失败输出1, 如果是已经启动返回是PID值

ams if_stop     退出AMS服务器,  成功输出0, 失败输出1.

ams if_status  可以查看服务器是否在运行.  正在运行返回0, 失败返回1.

  1. 卸载

执行如下命令完成卸载

>ams stop

> rpm -e ams-server

> rpm -e ffmpeg

  • 服务基本使用

服务器安装完成后,默认HTTP 端口为89, RTMP默认端口为1935.为了保证服务能正常在外部访问,请先关闭防火墙.

使用 http://IP:89/ 进行测试,如果能访问到服务器,那么会出现如下页面内容:

免费流媒体服务器(AMS3.0 非AdobeMediaServer)

服务器提供两种协议的点播直播服务

  1. 直播

上传直播数据的地址连接形式如下:

rtmp://{ip}:{rtmp_port}/{app}/{streamname},

{app}  为应用名, 当为源服务器时 app 是 live; 若为边缘服务器时 app 是 publish. 是否为源服务器的角色可以在设置中把”org”变量设为1.

{streamname}为流名称.

在上传数据后可以使用两种协议进行观看:

RTMP    rtmp://{ip}:{rtmp_port}/live/{streamname}

HTTP    http://{ip}:{http_port}/{streamname}/index.m3u8

  1. 点播

对于点播只支持MP4, 点播的地址格如下

RTMP   rtmp://{ip}:{rtmp_port}/vod/{name }

HTTP    http://{ip}:{http_port}/{name }

HTTP播放连接有两个固定参数, 这两个参数可以指播放文件的某一段, 连接的形式如下: http://192.168.1.200:89/1.mp4?start=20&end=40 这说明是只播放第20秒到40秒, 对于播放器来说就相当于是一个小文件, 时长为20秒.  Start参数没有默认为开始0, end参数没有为播放至文件结束.

服务内部已经内置了一个点播节目,名称为1.mp4,可以直接进行访问测试

  • 服务器配置

服务器配置接口格式:

http://{ip}:{http_port}/cfg/{cmd}

所有的请求方法都要使用POST,否则内部不会进行处理,并且目前密码认证还没有加入,参数传递暂时使用POST参数的形式,后面会修改为JSON.

其中的{cmd}命令变量有三个如下:

  1. get     此命令是查看当前服务器的配置情况

 返回值为POST参数串如下:

hls_fragment=2&hls_playlist_length=4&rtmp_port=1935&http_port=88&http_notify=http://192.168.1.65:80/onplay.php&rtmp_notify=http://192.168.1.65:80/onplay.php&enable_http_vod_s_notify=1&enable_http_vod_e_notify=0&enable_http_live_s_notify=0&enable_http_live_e_notify=0&enable_rtmp_vod_s_notify=0&enable_rtmp_vod_e_notify=0&enable_rtmp_live_s_notify=0&enable_rtmp_live_e_notify=0&enable_rtmp_publish_s_notify=1&enable_rtmp_publish_e_notify=1&enable_rtmp_update_notify=0& allow_addr=192.169.1.65&record_path=/var/ams &upload_path=/var/ams/upload&enable_rtmp_record_process=1&enable_rtmp_record_manual=0&enable_http_upload_process=1&update_interval=30&org=0&rtmp_org_addr=rtmp://192.168.20.142:1935/live&http_org_addr=http://192.168.20.142:89″

  1. set             是设置服务的配置

设置时可以设置某一个参数,也可同时设置多个参数,当多个参数时同样也用POST参数格式进行发送.

  1. reload   在重设配置后,配置是不会立即生效的,只是做了配置的保存.要想生效只有重启服务器或使用此命令来加载配置.在重启的之后,原来提供服务的连接不会立刻断开,但不会再接受新连接.

参数说明

hls_fragment                  hls单切片时长,单位秒           

hls_playlist_length       HLS总切片时长,单位秒

rtmp_port                           RTMP协议监听端口

http_port                          HTTP协议监听端口

http_notify                          HTTP事件通知接口

rtmp_notify                        RTMP事件通知接口

enable_http_vod_s_notify       是否启用HTTP点播播放通知认证,1为是0为否

enable_http_vod_e_notify   是否启用HTTP点播结束通知,1为是0为否

enable_http_live_s_notify   是否启用HTTP直播播放通知认证,1为是0为否

enable_http_live_e_notify   是否启用HTTP直播播放结束通知,1为是0为否

enable_rtmp_vod_s_notify      是否启用rtmp点播播放通知认证,1为是0为否

enable_rtmp_vod_e_notify   是否启用rtmp点播结束通知,1为是0为否

enable_rtmp_live_s_notify   是否启用rtmp直播播放通知认证,1为是0为否

enable_rtmp_live_e_notify   是否启用rtmp直播播放结束通知,1为是0为否

enable_rtmp_publish_s_notify 是否启用RTMP发布开始通知

enable_rtmp_publish_e_notify 是否启用RTMP发布结束通知

enable_rtmp_update_notify   是否启用 RTMP 直播点播动态通知

allow_addr                                                  对于配置和控制接口调用时的允许地址.默认值为 all .   可以为一个单一的IP址值,也可是一个段 如 192.168.1.0/24 . 但无论何 127.0.0.1是可以使用的

record_path                                               录生成时的保存路路径,默认值为/var/ams,这个也是默认媒体库的位置. 如果是想直接用文件名进行播放时,请不要修改此变量.

upload_path                                               文件上传时的保存路径,默认值为/var/ams/upload

enable_rtmp_record_process               是否启用录像文件的处理过程,当启用之后会在录像完成后再对录像文件转封装为MP4, 并向通过接口向接口服务器发送类型为record_transfer_done的文件信息通知,默认开启,值为1, 0为不开启.

注意: 开启时rtmp_notify要正确的接口地址设值,否则无法向外发送通知.

enable_rtmp_record_manual       是否启用手动录像模式, 默认是自动,即有流上传就自动开始录像. 如果开启那么只用调用相应接口来启动停止某一路录像. 0为自动, 1为手动.

enable_http_upload_process                 是否启用上传文件的处理过程,当启用之后会在上传完成后再对上传文件转码为MP4, 如果是MP4文件那么将对文件进行快速播放处理. 并向通过接口向接口服务器发送类型为upload_transfer_done的文件信息通知,默认开启,值为1, 0为不开启. (这一部分功能好像没有实现完成,  大家可以先自己试一下, 时间太长了我自己都忘了 )

update_interval                                         直播发布的信息更新时间间隔

org                                                                默认为1,

表示是源服务器, 当单机使用时就是为源服务器,

rtmp_org_addr                                          当org的值为0时,即作边缘服务器时一定设置源服务器的拉推流址. 格式如前面示例.

http_org_addr                                           当org的值为0时,即作边缘服务器时一定设置源服务器的文件获取地址. 在此为点播文件的获取地址

注意: 对于HTTP的直点播的开始通知都是可以使用的,都是可以进行认证操作.但对于直播结束的通知由于受HTTP协议的限制,很可能是不断的断开重连,所以时间和流量要不断的累加计算, 使用起来效率并不是很高. 点播时只要文件下载完毕连接就会断开,所以结束时时间参数并不是用户的真正观看时间,最好是使用流量来统计.

鉴于HTTP连接的不确定性,推荐使用RTMP连接协议,只有在必须使用HTTP连接的再使用HTTP协议

  • 回调接口说明

对于所有的接口返回的都是POST form参数,如果客户端请求时带有参数,比如用户名密码认证信息之类的,那么也会被在回调参数中出现, 参数对于RTMP及HTTP又略有不同.请看后面详细说明.

设置 RTMP/HTTP 流发布或播放回调。每次一个客户连接执行任务时,一个 HTTP 请求异步发送,命令处理会挂起 – 直到它返回结果码。之后再解析 HTTP 结果码。

* HTTP 2XX 返回码继续 RTMP/HTTP 会话。

* 其他返回码RTMP/HTTP 连接丢弃。终止客户端的连接

当客户断开连接时也会发起一个异步通知,连同其它通知一样回调后无论返回何HTTP CODE 都会认为是成功了. 但最好是返回200,这样内部能正常结束这个通知连接.

  1. 点播播放文件的指定

点播两种协议,在通知回复时要加入下面的http头信息,如

‘Filename:{path}’  例: ‘Filename:/var/ams/1.mp4’

要确保这个路径能被核心服务器读取,否则不能播放.

如果不使用Filename 的HTTP头,那么服务器会自动到默认媒体库中寻找文件进行播放.

  1. 录像控制

录像可能通过设置接口设为自动或手动,但此时是统一设置, 不能具体到每一上传流. 如果想对每路发布流进行控制,请在服务器设置中把enable_rtmp_record_manual设为1. 然后在流发布回调的回复中加入http协议头信息进行指定. 如下:

rec_path:/var/media       用来指定录像文件的存储位置, 注意路径必须存在,并且不以’/’结尾; 只要此流进行录像就会保存在这个路径下.

rec_name:myrecfile       用来指定录像时的文件名称, 不需要文件扩展名. 生成的文件名格式如下myrecfile_20190625004733.mp4

is_rec:1                                      指定是否录像, 如果为1则此流录像,否则不会录像.

  1. RTMP 回调接口返回值
  1. RTMP通知公共回调参数, 在上传播放开始时都会存在的参数如下

“app”                                 表示当前应用 ,当前应用类型如下

“Live”   直播

“vod”        点播

“clientid”                            客户端连接ID,在控制接口中可能会使用此参数指定客户端

“call”                                   回调类型 目前支持如下类型

“publish”                            直播节目上传开始

“publish_done”                  直播节目上传结束

“play”                                  播放开始

“play_done”                        播放结束

“record_transfer_done”           录像处理结束

“update_publish”   直播上传时的动态更新

“name”                               当前频道的名字 或 点播文件名称

“addr”                                 连接客户端的IP

  1. 在流发布或播放结束时或者动态更新通知时会出现如下的参数

“time”                       当前客户端的连接时长, 单位是秒

“timestamp”     当前客户端上传或播放的时间戳, 单位是毫秒

“totlebyte”              当前客户端的使用流量,字节为单位

  1. 在动态更新时的线路质量参数

“dropped”      当前线路的丢包数       

  1. 录像处理结束(record_transfer_done),参数如下

“duration”     文件时长, 单位秒

“size”         文件大小, 字节BYTE

“fps”          帧率

“bitrate”      平均码流, 单位bit

“wh”           宽高

” filepath”     生成录像文件的全路径,包括文件名称. 如果文件不存在值为”NONE”, 当录像文件有问题时可能是FLV文件,正常为MP4.

“filename”   录像文件的名字.当录像文件有问题时可能是FLV文件,正常为MP4.

“streamname”  录像文件的数据源,即流名称

“jpgpath”          生成录像截图文件的全路径, 如果截图失败值为”NONE”

“error”      是否过程中出现错误, 正确时值为0, 错误时为错误码.                      

录像结束后进行文件分析转储过程,在分析转存完成后才进行回调通知, 此时已经生了MP4文件以及相关的信息截图等.

此外此回调中的公共参数只有”call”一个,可以以此来辨别处理过程.

record_transfer_done是通过rtmp_notify进行的, 如果需要获悉此文件的关联信息,回调中有相关的参数.   

此回调是模拟了FORM提交的方式进行的POST数据传输, 因此除携带了POST参数信息外还提交了一个”file”的截图文件, 此回调在服务器请求失败时会隔5  10  15   20秒各请求一次,总共4次.

  1. HTTP 回调接口返回值
  1. HTTP通知公共回调参数, 在上传播放开始时都会存在的参数如下

“app”                                 表示当前应用 ,当前应用类型如下

“http_Live”   直播

“http_vod”       点播

“clientid”                           客户端连接ID,在控制接口中可能会使用此参数指定客户端

“call”                                   回调类型 目前支持如下类型

“play”                                  播放开始

“play_done”                        播放结束

“upload_transfer_done” 文件上传处理结束通知

“name”                              当前频道URI或点播文件名称 只会在通知开始时出现

“addr”                                连接客户端的IP

“curTime”                          指当前通知产生的时间

  1. 播放结束通知时会出现如下的参数

“time”                                 当前客户端的连接时长, 单位是秒

“totlebyte”                       当前客户端的使用流量,字节为单位

  1. 文件上传处理结束(upload_transfer_done ),参数如下   

“duration”             文件时长, 单位秒

“size”               文件大小, 字节BYTE

“fps”               帧率

“bitrate”            平均码流, 单位bit

“wh”               宽高

“file”                上传最终生成文件的全路径,上传文件正确处理完成后,原上传文件将被删除,只剩处理完成后MP4文件,此时参数值为MP4文件的路径, 当处理错误时此变量的值可能就是上传时的文件, 文件格式就是上传时的格式.

filename”          文件名称

“jpgpath”               生成录像截图文件的全路径,如果截图失败值为”NONE”

“error”             是否过程中出现错误, 正确时值为0, 错误时为错误码.

注意此回调中的公共参数只有”call”一个,可以以此来辨别处理过程.

        upload_transfer_done是通过http_notify进行的,请在相应接口通知中进行处理.此回调是模拟了FORM提交的方式进行的POST数据传输, 因此除携带了POST参数信息外还提交了一个”file”的截图文件, 此回调在服务器请求失败时会隔5秒请求一次,总共4次.

  • 控制接口说明

控制接口都是httpget方法

  1. 录像控制接口

格式如下:

http://{IP}:{HTTP_PORT}/control/record/start|stop?app=live&rec=rec&name={NAME}

  • start|stop     可以选择一个即可, start为启动录像, stop为停止录像, 录像模块
  • app=live      目前这个被固化, 照样设置就可以,预留扩展
  • rec=rec       目前这个被固化, 照样设置就可以,预留扩展
  • name={NAME}     这个是录像时生成的文件名称, 最终生成时会在后面追加一个时间 如{NAME}为 live1  那么录像生成的文件名称可能为live1_20190321173926.flv

成功返回录像文件地址

  1. 踢除客户端
  1. RTMP客户端踢除接口格式如下:

http://{IP}:{HTTP_PORT}/control/drop/publisher|client? name={NAME}&addr={ADDR}&clientid={CLIENTID}

参数说明

  • publisher|client – publisher只能操作发布者, client可以操作所有客户端包含                               发布端.命令操作完成后会返回断开的连接数.
  • name         – 通知是指路踢除直播客户端使用, 如果不指定addr和clientid那么踢除这个直播通道下的所有客户端.对于点播不起效
  • addr          – 客户端的连接地址,如果此项不指定并且clientid也不指定将是所有.此项是指更为具体的描述客户端,只用在drop/client命令中生效.
  • clientid        – 用户连接后返回的clientId, 如果此项不指定并且addr也不指定将是所有.

返回值

执行后会返回当前被踢掉的客户端个数

例子

踢除名为live1且地址为192.168.1.65的所有客户端

http://192.168.1.144:89/control/drop/client?name=live1&addr=192.168.1.65

踢除名为live1的发布端,同时把所有名字为live1的所有播放端一并删除,返回值只有publisher的连接数

http://192.168.1.144:89/control/drop/publisher?name=live1

踢除clientid=985的发布端

http://192.168.1.144:89/control/drop/publisher?clientid=985

踢除所有发布端,同时把所有名字为live1的所有播放端一并删除

http://192.168.1.144:89/control/drop/publisher

踢除所有客户端,包含发布端和接收端

http://192.168.1.144:89/control/drop/client

踢除频道live1的所有客户端,包括上传端和播放端

http://192.168.1.144:89/control/drop/client?name=live1

踢除指定的客户端, 不管是上传端还是播放端

http://192.168.1.144:89/control/drop/client?clientid=737

  1. HTTP客户端踢除接口格式如下

http://{IP}:{HTTP_PORT}/cfg/drop?clientid={CLIENTID}

参数说明

clientid – 用户连接后返回的clientId

对于HTTP客户端的删除都是一对一的,没有其它复杂的参数选项.

返回值:

成功返回 result=OK

失败返回 result=FAILED

  1. HTTP媒体文件删除接口格式如下

http://{IP}:{HTTP_PORT}/cfg/delf?flie={filepath}

参数说明

filepath– 将要删除的媒体文件全路径

返回值:

成功返回 result=OK

失败返回 result=FAILED

  • 系统运行状态信息
  1. 系统运行信息查看接口
  1. 接口:

http://{IP}:{89}/stat

  1. 说明:

此接口可以直接在浏览器中打开,以图表的方式进行当前过行信息的展示,如下:

免费流媒体服务器(AMS3.0 非AdobeMediaServer)

  1. 系统运行概要信息获取接口
  1. 接口:

http://{IP}:{89}/stat/sys

  1. 说明

该接口仅支持GET方法, 正确返回200状态码并返回 xml字符串如下:

<?xml version=”1.0″ encoding=”UTF-8″?>

<sta max_client=”10000max_stream=”10000http_kbps=”0http_live_cn=”0http_vod_cn=”0rtmp_out_kbps=”0rtmp_in_kbps=”678rtmp_vod_cn=”0rtmp_live_cn=”0rtmp_publish_cn=”2“/>

参数说明

rtmp_publish_cn:    当前rtmp发布的流数目, 同时会对应一路的HTTP直播发布

rtmp_play_cn         RTMP 当前的播放连接数目

rtmp_in_kbps        RTMP 当前入口带宽

rtmp_out_kbps       RTMP 当前出口带宽

http_vod_cn         HTTP 当前点播连接数

http_live_cn        HTTP 当前直播的连接数

http_kbps           HTTP 当前的带宽情况

max_stream          最大发布流数

max_client          最大播放客户端数

  1. 获取当前会话连接的详情
  1. 接口:

http://{IP}:{89}/stat/all|channel|live|vod

  1. 说明

该接口仅支持GET方法, 正确返回200状态码并返回 xml字符串,如下:

免费流媒体服务器(AMS3.0 非AdobeMediaServer)

标签<live>中的子元素<stream>是直播流, 有多少个上传发布就会有多少个<stream>, <stream>中子元素<client>是当前流中的所有连接客户端的信息,这里面的连接有两种, 当属性publishing=1时说明是发布连接,这种连接在一个流中只会存在一个, 当publishing=0时说明是接收连接,这种连接会有多个,有多少个用户在接收观看就会产生多少个.

标签<play>中的子元素<stream>是点播流, 当前用户正在观看几个文件就会产生几个流. <stream>中子元素<client>是当前流中的所有连接客户端的信息,即有几个用户在观看这个节目就会产生几个<client>.

在服务器设计原则中可能会有多个服务<server>(目前只有一个服务),每个<server>会有多个<application> , 目前只会有一个name=”live”和name=”vod”的两个应用.每个<application>可能会有<live>或<play>,也可能两者都有,目前每个应用中只会有其一.

<stream>标签属性

name=”live22″          当前节目名称

active=”1″                             当前状态, 目前此值只为1.

time=”65298″                      节目服务时间, 直播标签专用

bw_in=”1653288″               输入带宽, 直播标签专用

bytes_in=”11182307″        输入字节, 直播标签专用

bw_out=”0″                          输出带宽, 直播标签专用

bytes_out=”0″                     输出字节, 直播标签专用

bw_audio=”247728″          音频带宽, 直播标签专用

bw_video=”1405560″        视频带宽, 直播标签专用

publishing=”1″                     说明是直播发布, 直播标签专用

<client>标签属性

id=”1″                                           客户端ID

address=”192.168.20.34″   客户端地址

time=”65300″                        客户端的连接时间

totlebyte=”11220500″           客户端总计发送字节

timestamp=”65199″               当前发送数据的时间截

dropped=”0″                              发送丢包数量, 点播不存在丢包值所以没有此属性

publishing=”1″                   直播连接属性, 当为0时说明是播放连接, 1是发布连接

active=”1″                             当前此值常量值1.

在标签中出现的多余属性是上传或播放地址后的附加参数, 你在地址后加入几个值,在属性中就会出现几个值.

系统平台已经有初级版本,请大家关注导航博客,我会不断的更新内容,请大家跟我一起走,给大家一个流媒体平台。*_*

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131258.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构

    JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构1.JVM内存图1.1JDK1.7JVM内存图程序计数器:线程私有的(每个线程都有一个自己的程序计数器),是一个指针.代码运行,执行命令.而每个命令都是有行号的,会使用程序计数器来记录命令执行到多少行了.Java虚拟机栈:线程私有的(每个线程都有一个自己的Java虚拟机栈).一个方法运行,就会给这个方法创建一个栈帧,栈帧入栈执行代码,执行完毕之后出栈(弹栈)本地方法栈:线程私有的(每个线程都有一个自己的本地方法栈),和Java虚拟机栈类似,Java虚拟机栈加载

  • kubernetes教程入门_centos7搭建k8s集群

    kubernetes教程入门_centos7搭建k8s集群文章目录第一章 kubernetes简介01 部署方式的演变容器部署的编排问题:解决以上问题的容器编排管理工具:02 k8s简介主要功能:03 k8s组件04 k8s概念第二章 k8s集群环境搭建05 环境规划**集群类型:**安装方式:主机规划:06 环境搭建 主机安装07 环境初始化1.检查centos版本2.主机名解析3.时间同步4.禁用防火墙服务iptables和firewalld5.禁用linux的安全服务selinux6.禁用swap分区7.修改linux内核参数8.配置ipvs功能9.重启系统

  • html 怎么让整体居中,html中表格整体居中 详解html里面如何让表格居中[通俗易懂]

    html 怎么让整体居中,html中表格整体居中 详解html里面如何让表格居中[通俗易懂]把表格在页面中间显示。。。分享代码。。。在这个无谓的年华,无论别人多么高高不可攀比,但小编还是选择,做一个适应自己的人。首先打开vscode编辑器,新建一个html文档,里面写入一个外层的div,再加入一行table表格:知道谢每一粒种子,每一缕清风,也知道早起播种和御风而行。然后在上方的style标签中加入css样式,设置table标签的样式,table的元素具有长度自适应性,其长度根据其内…

  • java虚拟机可以运行的文件_虚拟机的网络模型有

    java虚拟机可以运行的文件_虚拟机的网络模型有Java虚拟机中的内存模型?Java虚拟机运行时内存所有的类的实例(不包括局部变量与方法参数)都存储在Java堆中,每条线程有自己的工作内存(Java栈),不同线程之间无法直接访问对方工作内存中的变量。方法区用于存储被虚拟机加载的类信息、常量、static变量等数据,堆用于存储对象实例,比如通过new创建的对象实例就保存在堆中,堆中的对象的由垃圾回收器负责回收。Java栈用于实现方法调用,每次方法调用就对应栈中的一个栈帧,栈帧包含局部变量表、操作数栈、方法接口等于方法相关的信息,栈中的数据当没有引用指向

  • java中list,set,map集合的区别,及面试要点[通俗易懂]

    java中list,set,map集合的区别,及面试要点[通俗易懂](图一)1.面试题:你说说collection里面有什么子类。(其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set)正如图一,list和set是实现了collection接口的。(…

  • JBPM工作流的性能问题「建议收藏」

    JBPM工作流的性能问题「建议收藏」前言:我计划把我的blog从51cto移到javaeye,陆陆续续地把我对工作流的理解贴上来,和大家交流。我在项目中应用过jbpm工作流,总体而言,jbpm是诸多开源workflow中比较好的一个。他的面向图的设计比起那些一味宣称遵守所谓的WfMC规范的工作流好多了。在应用的过程中,我发现jbpm还是有不少问题,其中性能问题比较突出。主要表现为:1、任务分配的表设计不合理,如果…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号