2025年免费流媒体服务器(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也能正常运行. 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下测试通过.

  1. 安装

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/ 进行测试,如果能访问到服务器,那么会出现如下页面内容:

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

  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

      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,这样内部能正常结束这个通知连接.

  1. 点播播放文件的指定

点播两种协议,在通知回复时要加入下面的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"              当前客户端的使用流量,字节为单位

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

“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次.

  • 控制接口说明

控制接口都是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. 说明:

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

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

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

  1. 说明

该接口仅支持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          最大播放客户端数

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

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

  1. 说明

该接口仅支持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.

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

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

编程小号
上一篇 2025-04-03 14:27
下一篇 2025-03-16 18:40

相关推荐

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