精华内容
下载资源
问答
  • 2021-02-25 20:23:47

    一、前语

    本文纂写时间是2018年12月17日,所描述的软件Wowza Media Server此时已经出了4或更高,但是2.2.2提供的功能已经是Good enough for me.如果发现4足够更好,后面文章也许会再续。

    本文试图描述一个在Windows Server 2012上安装了Wowza Media Server v2.2.2流媒体服务的事件。最终会另服务器提供给外部适当的Server和Stream信息,以给外部提供流媒体服务。

    本文所涉及的主要软件Wowza Media Server v2.2.2由郑州的LMM老师提供,Java SDK从Java(Oracle)官方网站下载。

    二、环境介绍

    操作系统:64位 Windows Server 2012 数据中心版

    开放端口:1935(默认,可修改)

    三、安装步骤

    (印象步骤)

    1、安装Java SDK

    (1)将Java SDK安装于C:\JAVA目录下。

    (2)增加环境变量JAVA_HOME = C:\Java\jdk1.6.0_45

    (3)在PATH中增加项(每项以;分割), C:\Java\jdk1.6.0_45\bin  亦或 %JAVA_HOME%\bin

    2、安装Wowza Media Server v 2.2.2

    (1)*强烈建议有经济能力的同志通过官方渠道购买*运行.\keygen\keygen.bat 在弹出的 "CRUDE - Wowza Me ..."标题窗口中复制安装Serial序列号。

    (2)运行.\setup\WowzaMediaServer-2.2.2.exe ,选择安装目录为某盘符的根目录(至少不要默认的中间带空格的目录),下一步至安装完成。

    (3)运行

    C:\Wowza Media Systems\Wowza Media Server 2.2.2\examples\installall.bat

    运行后 C:\Wowza Media Systems\Wowza Media Server 2.2.2\applications 目录下会出现若干子目录,其中包含目录vod。

    (4)编辑C:\Wowza Media Systems\Wowza Media Server 2.2.2\conf\vod\Application.xml,将

    digest

    digest

    senderreport

    12000

    75

    90000

    0

    0.0.0.0

    127.0.0.1

    *

    修改为

    none

    none

    senderreport

    12000

    75

    90000

    0

    0.0.0.0

    127.0.0.1

    *

    (5)打开Windows Server 2012的服务管理器仪表盘->工具->服务,从列表中找到,服务 Wowza Media Server,右键启动。

    (6)目录C:\Wowza Media Systems\Wowza Media Server 2.2.2\content为视频的存储目录。其中默认已经存放了”Extremists.m4v“和"sample.mp4"两部小短片。足够测试,但亦可向其中添加新的视频,支持中文名称的文件夹及中文名称的视频。

    3、测试流媒体服务

    (1)准备测试工具

    将Windows Server 2012服务器上的文件夹

    C:\Wowza Media Systems\Wowza Media Server 2.2.2\examples\LiveVideoStreaming\client

    拷贝到本地。

    (2)测试

    用浏览器打开拷贝到本地的./client/live.html 文件。如果没有Flash播放插件可能需要安装。

    在"Server:"框中输入 rtmp://192.168.163.136:1935/vod

    在"Stream:"框中输入 mp4:sample.mp4

    点击 "Play" 按钮。如果开始播放说明流媒体服务正常,若没有反应或报错说明错误。

    更多相关内容
  • srs一款windows下面的流媒体服务器,srs一款windows下面的流媒体服务器,性能比red5高很多
  • FFMPEG和FFSERVER搭建流媒体服务器实例(windows下测试通过),可以根据自己的需求修改里面的ffserver.conf文件。详情可以参考http://blog.csdn.net/hk627989388/article/details/53838533
  • RTSP流媒体服务器的搭建与测试

    热门讨论 2013-08-16 23:42:02
    本文主要介绍了live555搭建RTSP流媒体服务器,并采用VLC软件进行相应测试
  • Nginx流媒体服务器搭建

    千次阅读 2022-04-27 19:11:56
    5.流媒体服务器拓展 发现了一款基于GO的开源流媒体服务器开发框架Monibuca可以了解一下~ 6.参考资料 Nginx下载网址:...

    1.基础包下载

    1.1 基础清单

    版本
    系统版本:CentOS 7.6
    Nginx版本:1.20.1
    nginx-vod-module版本:1.29
    

    Nginx安装方面可以看我的另一篇文章Nginx笔记
    注意各个组件版本,可能会产生一些版本冲突

    1.2 nginx-vod-module下载

    nginx点播模块,支持自动切片等功能,详细可直接去项目Git

    wget https://github.com/kaltura/nginx-vod-module/archive/refs/tags/1.28.tar.gz
    

    1.3 libfdk-acc下载(可选)

    此库以支持倍速输出、视频音轨分离等功能

    wget https://github.com/mstorsjo/fdk-aac/archive/refs/tags/v2.0.2.tar.gz
    

    1.4 ffmpeg下载(可选)

    wget https://ffmpeg.org/releases/ffmpeg-5.0.1.tar.gz
    

    2.给Nginx加装模组

    2.1 安装libfdk-acc(可选)

    # 解压
    tar -zxvf libfdk-acc-你的版本.tar.gz
    
    # 进入目录
    cd libfdk-acc-你的版本
    
    # 生成配置
    ./autogen.sh
    
    # 如果出现 autoreconf相关错误 为缺少依赖错误
    # CentOS7.6及以上版本可直接yum安装依赖
    yum install autoconf automake libtool
    
    # 如果系统版本过低建议升级版本或者手动安装
    # http://mirrors.kernel.org/gnu/autoconf/
    
    # 依赖安装完毕重新生成配置
    ./autogen.sh
    
    # 配置
    ./configure --enable-shared
    
    # 编译
    make
    
    # 安装
    make install
    

    2.2 安装ffmpeg(可选)

    # 解压
    tar -zxvf ffmpeg-你的版本.tar.gz
    
    # 进入目录
    cd ffmpeg-你的版本
    
    # 编译
    ./configure --enable-shared --enable-libfdk-acc
    
    # 如果报错nasm或者yasm未找到或版本过低,需要安装依赖
    # CentOS7.6可使用yum安装
    yum install nasm
    
    # 如果系统版本过低,需手动安装
    # https://www.nasm.us/pub/nasm/releasebuilds/
    
    # 如果出现警告 using libfdk without pkg-config 需要配置PKG_CONFIG_PATH路径
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
    
    # 检查是否配置成功
    echo $PKG_CONFIG_PATH
    
    # 重新配置
    ./configure --enable-shared --enable-libfdk-acc
    
    # 编译
    make
    
    # 安装
    make install
    

    2.3 安装Nginx

    进入Nginx编译目录(此处生产环境,不方便部署可搜索Nginx动态编译)

    # 重新配置Nginx
    ./configure --prefix=安装路径 --with-http_stub_status_module --with-http_gzip_static_module --with-http_gunzip_module --with-file-aio --with-threads --with-cc-opt="-O3" --with-http_ssl_module --with-openssl-opt=enable --with-http_mp4_module --with-stream --add-module=vod模块路径/nginx-vod-module-master
    
    # 编译
    make
    
    # 安装
    make install
    

    Tips:如果安装过程中出现问题,可去查看各模块项目git的 issues查找是否有相似错误及解决方案

    3.配置Nginx

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  localhost;
    
            autoindex on; # 开启目录索引
    
            location /vod {
                vod hls; # 开启vod模块
                vod_mode local; # 访问模式指定为local
                
                vod_align_segments_to_key_frames on; # 每个切片以关键帧开头
                vod_manifest_segment_durations_mode accurate; # 精确显示每个切片的长度
                
                add_header Access-Control-Allow-Headers '*';
                add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
                add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
                add_header Access-Control-Allow-Origin '*';
    
                alias /media; # 视频存放路径
            }
            
            location /data {
                alias /media; # 目录索引地址
            }
            
            # 访问以mp4结尾资源可直接播放
            location ~* /data/.*\mp4 {
                rewrite ^/data/(.*)\.(mp4) /$1.$2 break;
                root /media;
                mp4;
            }
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    

    4.上传视频测试

    4.1 上传视频

    存在一些MP4视频由于各种奇奇怪怪的原因,可能会导致播放不出来
    使用WinSCP等工具,上传视频到服务器,如采用以上配置,视频上传至/media

    4.2 测试地址

    拉流地址:
    http://服务器IP/vod/视频.mp4/index.m3u8
    网页播放测试
    http://服务器IP/data/视频.mp4

    4.3 错误解决

    此时可以进入nginx目录中logs查看日志
    400错误
    一般是文件格式问题,可根据日志中错误进行搜索
    404错误
    一般是配置或者视频文件存放位置错误,可根据日志中错误进行搜索

    5.流媒体服务器拓展

    发现了一款基于GO的开源流媒体服务器开发框架Monibuca可以了解一下~

    6.参考资料

    Nginx下载网址:http://nginx.org/en/download.html
    nginx-vod-module:https://github.com/kaltura/nginx-vod-module
    libfdk-aac:https://github.com/mstorsjo/fdk-aac
    ffmpeg:https://ffmpeg.org/download.html
    Monibuca https://m7s.live/

    展开全文
  • 免费流媒体服务器(AMS3.0 非AdobeMediaServer)

    万次阅读 多人点赞 2020-07-13 14:04:02
    自己从事流媒体近20载, 从没有可用的流媒体服务器到现在服务器遍地开花. 但尽管开源服务器众多,功能强大, 但却没有可以直接拿来使用的. 原因是配置安装困难,没有自己想要的接口,很难与现有系统对接. 为解决这个...

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

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

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

    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. 说明:

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

    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.

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

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

    展开全文
  • 流媒体服务器支持HLS,RTMP,RTSP,HTTP-FLV,HTTP-TS,HTTP-AAC输出
  • 十款免费的流媒体服务器软件介绍

    千次阅读 2021-07-30 01:04:27
    互联网时代,服务器是网络的重要支撑,大家租用云服务器除了搭建网站服务器之外,...)流媒体服务器是指提供以流方式在网络中传送音频、视频和多媒体文件的媒体形式服务的服务器。它的主要功能是流式协议(RTP/RTSP、M...

    互联网时代,服务器是网络的重要支撑,大家租用云服务器除了搭建网站服务器之外,还会用到搭建其他各种WEB应用服务器,而流媒体服务器的搭建就是其中一种,那么应该怎么进行流媒体服务器的搭建呢?你知道有那些免费的流媒体服务器软件吗?(你可能想知道:视频流媒体服务器的选择方式?)

    badaa622c5a428b1ada4eb3ad85e8bdb.png

    流媒体服务器是指提供以流方式在网络中传送音频、视频和多媒体文件的媒体形式服务的服务器。它的主要功能是流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端。

    十款免费的流媒体服务器软件;

    1、Free Cast:个使用Java语言编写的P2P的流媒体开源平台。

    2、Easy Darwin:是款由国内开源流媒体团队开发和维护的开源流媒体平台框架。

    3、Live555:是个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。

    4、Red5:是个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流;录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。

    5、Free UPnP Entertainment Service:是个开源的多平台通用的即插即用的音频、视频的媒体服务器,支持在线对ogg/vorbis,musepack/mpc,FLAC和AAC/MP3进行转码到MP3、mp2、wav或者pcm,还包括图片转换、缩放等。

    6、Cumulus Server:又名open rtmfp,是个完全开源和跨平台的可扩展的RTMFP服务器脚本。Cumulus Server在GPL框架下遵循速度、优势、跨平台、轻量和高质量代码。

    7、Open AMF:是免费的开放源码替代Macromedia的远程Java Flash。这是因为能够提供作为应用服务,以FlashMX的大媒体的专有解决方案。

    8、cmzacfunmsg:个修改自php-rtmp-client的开源软件,可以精确模拟flash客户端向FMS发送格式化的AMF消息,所以在没有flash插件的情况下也可以进行与FMS交互。

    9、Open Streaming Server:是个数字媒体传送器,主要功能包括支持mp4、3gp、WMF和qt文件格式;动态带宽适配;负载均衡。

    10、Ffmpeg:是套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前先的音/视频编码库libavcodec。

    展开全文
  • 开源的流媒体服务器,使用ffmpeg作为容器解析库,实现RTSP基于TCP和UDP的点播,支持几乎所有的容器格式和编码方式,本人已经调试成功,很好很强大。这里特意说明一点,ffmpeg版本请安说明安装对应的版本,且编译的...
  • 流媒体服务器原理和架构解析

    千次阅读 2020-05-13 10:26:16
    在流式传输时,流媒体数据具有实时性,等时性等基本特点,流服务期和客户终端要保证各种媒体间的同步关系,因此,流媒体传输对“最大延时”,“延时抖动”等QoS参数都有严格要求。 实时流传输既可传输实况直播,也...
  • 流媒体服务器配置与管理 理论 1、流媒体的基本概念 1.1、流媒体的定义 流媒体,streaming media,又叫流式媒体,它是一种多媒体表现形式。当供应商将媒体交付至互联网后,数据包分段技术将媒体数据压缩,以流的形式...
  • 流媒体服务器使用手册

    千次阅读 2018-11-15 10:25:20
    流媒体服务器使用手册     版本:V5.2   目 录 第1章 产品概述... 3 第2章 产品使用详解... 4 2.1 产品主要功能... 4 2.2 产品安装... 4 2.3.1 应用程序安装... 4 2.3.2 产品注册... 4 2.3.3 ...
  • 目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等,我们应该怎么选择呢? 正文 今天这篇文章主要介绍SRS、EasyDarwin、ZLMediaKit和Monibuca的一些对比情况,可以...
  • 流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体服务的工作原理.ppt流媒体...
  • 流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体服务的工作原理.pdf流媒体...
  • 海康威视的流媒体服务器开发代码

    热门讨论 2011-03-28 14:12:17
    海康威视的流媒体服务器开发代码 解决海康线程不够用,访问速度不快,搭建分发媒体服务器。
  • 本文使用的流媒体服务器的搭建是基于rtmp(Real Time Message Protocol)协议的,rtmp协议是应用层的协议,要依靠底层的传输层协议,比如tcp协议来保证信息传输的可靠性。 相关服务: Nginx、srs、MediaServer等三种...
  • 下载并编译ZLMediaKit流媒体服务框架3.下载并安装wvp-pro-2.0网络视频平台4.安装Redis5.内网调试6.公网部署 1.环境介绍 操作系统: Ubuntu18.04 GCC版本: GCC 7.5.0 2.下载并编译ZLMediaKit流媒体服务框架 ...
  • 怎么在win10中搭建流媒体服务器搭建

    千次阅读 2021-08-01 03:57:30
    使用IIS在win 2003 sever上配置免费流媒体服务器第一步:通过任务栏的“开始-管理工具-internet信息服务管理器”第二步:启动INTERNET信息服务管理器设置窗口后在“网站”下将默认网站删除。然后在“网站”上点右键...
  • 搭建流媒体服务器

    千次阅读 2020-07-28 16:34:19
    本文介绍如何在阿里云、腾讯云等云主机上搭建流媒体服务器,包括如何选择云主机配置、如何选择带宽和流媒体服务器软件选择等。 流媒体服务器是支撑视频业务的基础系统,具有视频直播、视频点播的能力,有些使用场景...
  • SRS-开源流媒体服务器

    千次阅读 2021-09-23 09:46:06
    SRS 简介 SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP接入SRS, 包括推送RTMP到SRS、推...多级集群、源站集群、VHOST虚拟服务器、无中断服务Re
  • ZLMediaKit流媒体服务器

    千次阅读 2022-01-08 17:08:03
    本人先后调研了几个webrtc流媒体服务器框架: mediasoup:nodejs和c++开发各占一半 janus:c开发插件,用docker镜像安装运行成功,自编译运行坑太多。 ZLMediaKit:c++开发。信令部分需要单独开发,可以团队合作...
  • 流媒体服务器的作用

    千次阅读 2020-07-14 15:14:14
    流媒体服务器(Media Streaming Server)在互联网上做视频点播和视频直播的基础支撑软件系统,如果您要在互联网上做视频播出应用,如在线课堂、网络电视、视频点播、视频资讯、短视频、网络直播、企业直播等,那您就...
  • 流媒体服务器搭建

    千次阅读 2020-07-27 16:58:08
    搭建流媒体服务器一般从硬件、软件、带宽等几个方面来考虑。 流媒体服务器是支撑视频播出的基础系统,具有视频直播、视频点播的播出能力,有些使用场景下还会承担转码任务,因此,其对软硬件和网络的要求要高于Web...
  • 国标GB28181流媒体服务解决方案

    千次阅读 2021-09-28 20:29:28
    一、GB28181流媒体服务方案 GB28181流媒体服务器是提供流转发服务,负责将GB28181设备/平台推送的PS流转成ES流,然后提供RTSP、RTMP、FLV、HLS多种格式进行分发,实现web浏览器、手机浏览器、微信、PC客户端等各...
  • 一、直播与点播 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的...2、推流,将本地视频或直播视频以流媒体的形式推送给流媒体服务器 (可能会涉及格式转换); 3、拉流 ,从服务
  • EasyDarwin开源流媒体服务器

    千次阅读 2021-12-06 15:40:58
    支持RTSP推分发(推模式转发); 支持RTSP拉流分发(拉模式转发); 服务端录像 参考:EasyDarwinGo录像功能发布_jyt0551的博客-CSDN博客 服务端录像检索与回放 参考:EasyDarwinGo录像功能发布_jyt...
  • Nginx RTMP 流媒体服务搭建

    千次阅读 2022-01-24 16:45:05
    关于推可以使用OBS,推地址就是rtmp://ip/live,先设置好您的画面来源,然后点击右边设置,设置推地址: 这个串流密钥可以随便写,写什么,播放的时候就带什么,比如我写abc, 播放地址就是:rtmp://ip/live/abc...
  • 开源流媒体服务器ZLMediaKit介绍

    千次阅读 2021-07-25 12:38:34
    ZLMediaKit一个基于C++11的高性能运营级流媒体服务框架,跨平台,代码用CMake管理,可以用VS2019, XCode等进行编译。 仓库地址 https://github.com/ZLMediaKit/ZLMediaKit
  • 入行这么多年,深深觉得流媒体服务器的未来也将伴随着宽带应用和网络发展的总趋势,毕竟科技改变生活,未来流媒体也将占据网络的主流,视频流媒体服务器...说白了,流媒体服务器是运营商向用户提供视频服务的关键渠道,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 195,156
精华内容 78,062
关键字:

流媒体服务

友情链接: srs_updata.zip