免费流媒体服务器(AMS3.0 非AdobeMediaServer)之二 (使用篇

  • 服务器设置 PHP 设置示例 set.php 内容如下:

                                                                                                            

$url = "http://192.168.20.123:89/cfg/set"; //把IP改为你服务器的地址
//下面的设置数据表示 关闭自动录像, 把服务器设为边缘服务器, 同时设置了中服务器的回源地址,  
$set_data = "enable_rtmp_record_manual=1&org=0&rtmp_org_addr=rtmp://192.168.20.142:1935&http_org_addr=http://192.168.20.142:89"; 

//enable_rtmp_record_manual=1   表示是录像为手动模式, 即关闭自动录像
// org=0   表示要设置当前服务器为边缘服务器, 如果是中心服务器为 1, 
//rtmp_org_addr=rtmp://192.168.20.142:1935/live     当不是中心服务器时要设此项指明中心服务器的RTMP地址, 如果是中心服务器那么此项可以不用设置,  注意:安全的方式是用url_encoder()把URL编码一次,否则可能因URL中含有特殊字符而出现错误
//http_org_addr=http://192.168.20.142:89            当不是中心服务器时要设此项指明中心服务器的HTTP地址, 如果是中心服务器那么此项可以不用设置,注意:安全的方式是用url_encoder()把URL编码一次,否则可能因URL中含有特殊字符而出现错误

//注意下面的变化:
//rtmp://{ip}:{rtmp_port}/{app}/{streamname}, 
//推流地址中{app}  为应用名, 当为中心源服务器时 app 是 live; 若为边缘服务器时 app 是 publish. 是否为源服务器的角色可以在设置中把"org"变量设为1.
 

 

//http_notify=http://192.168.1.65:80/onplay.php    http播放时的通知接口, 包括播放直播点播   这个onplay.php也有一个示例. 他的IP地址就是这个文件所在的WEB服务器地址
//rtmp_notify=http://192.168.1.65:80/onplay.php    RTMP播放时的通知接口, 包括直播点播
//上面的两个通知只有在下在面的开关项设为1时才会被调用
//enable_http_vod_s_notify=1          启用http点播开始通知
//enable_http_live_s_notify=1            启用http直播通知
//enable_rtmp_vod_s_notify=1            启用rtmp点播通知
//enable_rtmp_live_s_notify=1            启用rtmp直播通知

                                                                                       
 $ch = curl_init();                                                                                                                       
 curl_setopt( $ch, CURLOPT_URL, $url);                                                                                                    
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);                                                                                            
 curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 5);                                                                                            
 curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);            
 curl_setopt( $ch, CURLOPT_FRESH_CONNECT, true);                                                                             
 curl_setopt( $ch, CURLOPT_POST, 1); //设置为POST方式      
 curl_setopt($ch, CURLOPT_POSTFIELDS, $set_data);                                                                               
                                               
 // 执行一个curl会话                                                                                                                      
 $contents = curl_exec($ch);                                                                                                              
 // 返回一个保护当前会话最近一次错误的字符串                                                                                              
 $error = curl_error($ch);                                                                                                                
 if($error){                                                                                                                              
     echo 'Error: '.$error;                                                                                                               
 }                                                                                                                                        
 // 关闭一个curl会话                                                                                                                      
 curl_close( $ch );       
                                                                                                             
 echo $contents;  
             

  • 事件的HTTP响应 onplay.php

$user = $_GET["name"];
$psw  = $_GET["psw"];

//这个用户名和密码就是你在播放或上传发布链接中所带的参数, 你也以带上其它的参数, 这里都能取到
//比如播放地址 rtmp://192.168.1.222:1935/live/live1?name=wang&psw=123456  其它的地址带参数也是这样的
//如果判断所带的信息不合法, 那么可以把返回不合法, 如用  header('HTTP/1.1 401 Unauthorized');这是安全认证的做法


//header('HTTP/1.1 404 Not Found');
//header('HTTP/1.1 401 Unauthorized');
//header('Location:'.$url);  //Location和":"之间无空格。如果库中没有文件或想让其跳转到另一个播放地址时可以设$url为一个播放地址. 那么播放会自动跳转到指的播放
//header('Filename:/var/ams/1.mp4');  //Filename和":"之间无空格。此项指定要播放出的文件, 是本地路径, 如果不指定服务器就会播放默认库中的文件. 所以你可在此根据链接中的名称到你的库中找一个你想要让播放器播放的文件, 即播放的内容完全由我们控制. 我也推荐用这种做方, 这样只要你媒体文件存到服务器能访问到的地方, 那么用户就能播放出来, 就是说媒体库可以在任务地方
//header('is_rec:1');    //当在设置中设为手动模式时 , 可以在此开启此头, 这时可以针对此次推流进行录像, 这样不会影响其它的推流

//header('rec_path:/var/ams'); //header('is_rec:1'); 启用时指明录像位置, 否则不起作用,使用默认配置的路径
//header('rec_name:mark'); //header('is_rec:1'); 启用时指明录像名称, 否则不起作用,使用默认规则生成

?>

  • 博文目的

这篇博文主要让大家能更加清晰服务器怎么使用, 如果只看文档大家可能还是一团雾. 

服务器本身只是一个核心, 所有接口都标准HTTP协议, 都是提供给开发使用, 如果只是使用简单功能可以不使用接口. 但要想形成产品就要用相关的控制,这时的接口就显的很重要了. 所以我就写了这个简单博文, 主要是起抛砖引玉的作用. 如果还有问题可以留言. 

大家也可以加入这个群, 大家都是使用者, 可以相互讨论.

 

免费流媒体服务器(AMS3.0 非AdobeMediaServer)之二 (使用篇_第1张图片

你可能感兴趣的:(搭建流媒体服务器,高性能流媒体服务器,免费流媒体服务器,搭建流媒体服务器,nginx_rtmp,ams流媒体服务器搭建及使用)