声明:本博客提供免费软件仅可用于学习研究使用,不可用于传播非法媒体信息,否则自行承担法律后果
自己从事流媒体近20载, 从没有可用的流媒体服务器到现在服务器遍地开花. 但尽管开源服务器众多,功能强大, 但却没有可以直接拿来使用的. 原因是配置安装困难,没有自己想要的接口,很难与现有系统对接.
为解决这个问题, 自己就做了一个简单的安装包, 并且提供了众多的接口可以与WEB进行对接, 这样配置管理大大简化, 安装使用都非常简单.让各位玩家自己想玩就玩,呵呵。。。
服务器单机下保守至少可以大码流3000并发, 性能非常不错.性能超CRtmpServer\FMS, 可以与NGINX-RTMP 相媲美. 比SRS使用更方便. 你可以做集群.提供HTTP RTMP 协议, 支持HLS. rtmp协议做直播时能保证服务器产生的延迟不大于100毫秒, 目前有一家公司就是使用此服务做书法教学会议互动. 详细可以看下面的使用说明文档.
我以前就是做流媒体这行的, 现在出于爱好,把核心重新升级完善, 免费贡献给大家使用. 目前北京还有4家公司在使用这个服务器核心做产品, 成都一家, 深圳一家.
此流媒体服务有Windows版, 但Windows版有诸多的弊端且效率低, 后期我也都没有做同步更新, 你能在网上搜到的AMS KMS 都windows版的产品, 此处我只提供LINUX版流媒体服务核心, 你可以用它来做你自己的产品.
它是CENTOS6.5中开发, 7.0也能正常运行. ubuntu24.04/kylin v10已经测试, 其它系统版自己测试吧, 呵呵!
欢迎大家来下载使用, 功能完全没有限制, 完全免费. 有问题可以留言.可以提出你宝贵的建议.
大家有问题留言我会继续修改完善, 然后重新发布, 所以你要是使用, 可以定期上来看看, 下载资源看看版本号是不是改变了,反正我设的是0分 :- )
新版下载
资源下载(平台版) :ams-server-x86_64 2024-12-28
说明:这个版本可以独立使用,也可以配合WEB来形成一套流媒体平台的版本,如果你想自己搭一套完整的流媒体平台,请下载此版版本,其它相关的模块请参考其它博文。
2021-4-6 更新
- 修改图片生成BUG
- 修改点播更新BUG
2021-8-8更新
- 修改了无法生成连续剧的节目的BUG
- 加入了对中控的认证, 所有中控的相关认证都在此,这个认证授权是建立交互通道的过程。所以如果出现授权的情况,都是由于软件配置有问题。
2022-7-22更新
- 加入录像文件按大小生成文件
- 加入服务器的网络重新接口 restart
2024-1-21更新
- 修改会出现不能使用的问题
2024-7-12更新
- 修改扩展服务的接入,扩展服务请看 xmedia扩展服务 篇 支持GB28181 、FLV、SRT等
- 加入拉转推的功能,以任务方式拉取RTST流到服务器,配合WEB任务添加,参考 AMS系统平台 --- 流媒体服务器的安装与使用
- 修改上传时的认证机制,RTMP上传可以进行验证, 需要在WEB的直播频道中进行密码设置
- 修改截图图片分组
- 修改点播节目更新的BUG,节目更新后ID改变的问题修复
2024-12-24更新
- 修改服务器的兼容性保留原来CentOS7的安装 ,扶持Ubuntu安装,目前测试在ubuntu24.04上完成,安装请使用ROOT帐户。
2024-12-24更新
修改服务器的兼容性保留原来CentOS7的安装 ,支持Ubuntu / kylin 安装,目前测试在ubuntu24.04 kylin v10 上完成,安装请使用ROOT帐户。
现在屏幕采集\录像\rtmp推流工具也完成了第二版,所以同步更新一下博文.
(第二版) 完全免费的屏幕采集\录屏\直播推流的一体化工具_wanghaisheng的专栏-CSDN博客
至此我们离毫秒级延迟又近了一步!! 大家给点鼓励呀, 让我能感觉到自己的价值. 呵呵
AMS-SERVER安装与使用说明
MARK
- 环境与安装
LINUX环境目前在CentOS6.5.x86_64 CentOS7 ubuntu24.04下测试通过.
- 安装
ams-x86-20240524-124009.bin 为安装文件.
ffmpeg-x86_64-20240629-103428.bin 为AMS指定依赖文件,此FFMPEG不是通用FFMPEG
将两文件放入到LINUX下,在同级目录下执行命令完成安装.
命令如下
> sh ams-x86-20240524-124009.bin
> sh ffmpeg-x86_64-20240629-103428.bin
如果是系统是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.
- 服务基本使用
服务器安装完成后,默认HTTP 端口为89, RTMP默认端口为1935.为了保证服务能正常在外部访问,请先关闭防火墙.
使用 http://IP:89/ 进行测试,如果能访问到服务器,那么会出现如下页面内容:
服务器提供两种协议的点播直播服务
- 直播
上传直播数据的地址连接形式如下:
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
2.点播
对于点播只支持MP4, 点播的地址格如下
RTMP rtmp://{ip}:{rtmp_port}/vod/{name }
HTTP http://{ip}:{http_port}/{name }
由于新版的录像生成时会分目录存贮, 所以如果是录像文件且没有做点播时回调接口的对接,那这些连接上要写明路径, 比如直播的流名称为"live5",那么他生成的录像都会在"live5"的目录下, 所以他对应的录像链接就是 http://{ip}:{http_port}/live5/{name }, 这是HTTP协议, 如果是TRMP协议那就不能播放了.
要想回到回到老版可以修改配置 , 打开文件 /usr/local/sbin/ffmpeg/bin/mediapro.conf
把 [creat_dir]=[true]; 中的true改为false就可以了.
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参数串如下:
enable_record_size=0&record_size=1024000&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"
2. set 是设置服务的配置
设置时可以设置某一个参数,也可同时设置多个参数,当多个参数时同样也用POST参数格式进行发送.
3. reload 加载配置命令
在重设配置后,配置是不会立即生效的,只是做了配置的保存.要想生效只有重启服务器或使用此命令来加载配置.在使用些命令之后,原来提供服务的连接不会立刻断开,如果再有新的连接进来将按照新配置运行, 注意用POST方法
4. restart 重启命令
把原服务退出, 重新运行. 注意用POST方法
参数说明
enable_record_size 是否启用录像按大小生成文件, 如果为1启用, 0为否
record_size 录像文件大小, 当enable_record_size为1时生效, 单位为KB
hls_fragment hls单切片时长,单位秒
hls_playlist_length HLS总切片时长,单位秒
rtmp_port RTMP协议监听端口
http_port HTTP协议监听端口
http_notify HTTP事件通知接口
rtmp_notify RTMP事件通知接口
api_port 扩展服务AIP端口
s_rtmp_port 扩展服务rtmp端口
flv_port 扩展服务FLV端口
rtc_port 扩展服务rtc端口
srt_port 扩展服务 SRT端口
gb28181_port 扩展服务28181数据端口
sip_port 扩展服务SIP指令端口
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,这样内部能正常结束这个通知连接.
- 点播播放文件的指定
点播两种协议,在通知回复时要加入下面的http头信息,如
'Filename:{path}' 例: 'Filename:/var/ams/1.mp4'
要确保这个路径能被核心服务器读取,否则不能播放.
如果不使用Filename 的HTTP头,那么服务器会自动到默认媒体库中寻找文件进行播放.
2. 录像控制
录像可能通过设置接口设为自动或手动,但此时是统一设置, 不能具体到每一上传流. 如果想对每路发布流进行控制,请在服务器设置中把enable_rtmp_record_manual设为1. 然后在流发布回调的回复中加入http协议头信息进行指定. 如下:
rec_path:/var/media 用来指定录像文件的存储位置, 注意路径必须存在,并且不以’/’结尾; 只要此流进行录像就会保存在这个路径下.
rec_name:myrecfile 用来指定录像时的文件名称, 不需要文件扩展名. 生成的文件名格式如下myrecfile_20190625004733.mp4
is_rec:1 指定是否录像, 如果为1则此流录像,否则不会录像.
3.RTMP 回调接口返回值
1) RTMP通知公共回调参数, 在上传播放开始时都会存在的参数如下
"app" 表示当前应用 ,当前应用类型如下
"Live" 直播
"vod" 点播
"clientid" 客户端连接ID,在控制接口中可能会使用此参数指定客户端
"call" 回调类型 目前支持如下类型
"publish" 直播节目上传开始
"publish_done" 直播节目上传结束
"play" 播放开始
"play_done" 播放结束
"record_transfer_done" 录像处理结束
"update_publish" 直播上传时的动态更新
"name" 当前频道的名字 或 点播文件名称
"addr" 连接客户端的IP
2) 在流发布或播放结束时或者动态更新通知时会出现如下的参数
"time" 当前客户端的连接时长, 单位是秒
"timestamp" 当前客户端上传或播放的时间戳, 单位是毫秒
"totlebyte" 当前客户端的使用流量,字节为单位
- 在动态更新时的线路质量参数
“dropped” 当前线路的丢包数
3) 录像处理结束(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次.
4. HTTP 回调接口返回值
1) HTTP通知公共回调参数, 在上传播放开始时都会存在的参数如下
"app" 表示当前应用 ,当前应用类型如下
"http_Live" 直播
"http_vod" 点播
"clientid" 客户端连接ID,在控制接口中可能会使用此参数指定客户端
"call" 回调类型 目前支持如下类型
"play" 播放开始
"play_done" 播放结束
“upload_transfer_done” 文件上传处理结束通知
"name" 当前频道URI或点播文件名称 只会在通知开始时出现
"addr" 连接客户端的IP
"curTime" 指当前通知产生的时间
2) 播放结束通知时会出现如下的参数
"time" 当前客户端的连接时长, 单位是秒
"totlebyte" 当前客户端的使用流量,字节为单位
3) 文件上传处理结束(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次.
- 控制接口说明
控制接口都是http的get方法
- 录像控制接口
格式如下:
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
成功返回录像文件地址
- 踢除客户端
- 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
- HTTP客户端踢除接口格式如下
http://{IP}:{HTTP_PORT}/cfg/drop?clientid={CLIENTID}
参数说明
clientid – 用户连接后返回的clientId
对于HTTP客户端的删除都是一对一的,没有其它复杂的参数选项.
返回值:
成功返回 result=OK
失败返回 result=FAILED
- HTTP媒体文件删除接口格式如下
http://{IP}:{HTTP_PORT}/cfg/delf?flie={filepath}
参数说明
filepath– 将要删除的媒体文件全路径
返回值:
成功返回 result=OK
失败返回 result=FAILED
- 系统运行状态信息
- 系统运行信息查看接口
- 接口:
http://{IP}:{89}/stat
- 说明:
此接口可以直接在浏览器中打开,以图表的方式进行当前过行信息的展示,如下:
- 系统运行概要信息获取接口
- 接口:
http://{IP}:{89}/stat/sys
- 说明
该接口仅支持GET方法, 正确返回200状态码并返回 xml字符串如下:
<?xml version="1.0" encoding="UTF-8"?>
<sta max_client="10000" max_stream="10000" http_kbps="0" http_live_cn="0" http_vod_cn="0" rtmp_out_kbps="0" rtmp_in_kbps="678" rtmp_vod_cn="0" rtmp_live_cn="0" rtmp_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 最大播放客户端数
- 获取当前会话连接的详情
- 接口:
http://{IP}:{89}/stat/all|channel|live|vod
- 说明
该接口仅支持GET方法, 正确返回200状态码并返回 xml字符串,如下:
标签<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.
在标签中出现的多余属性是上传或播放地址后的附加参数, 你在地址后加入几个值,在属性中就会出现几个值.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/106568.html