一、环境准备

1.服务器,阿里云服务器、腾讯云服务器或者其它服务器

2.需要两个域名一个推流域名一个播放域名

3.阿里云服务器为例需要解析两个域名作为推流和播放,推流和播放如下图都指向如下

4.去腾讯云控制台,新建播放和推流域名

 注意:推流和播放不能是一个域名,可以是子域名

5.新建key 地址 站点域名管理

6.下载推流软件ob和播放alc

参考腾讯云文档 云直播 OBS 推流-功能实践-文档中心-腾讯云-腾讯云

二、代码

1.复制推流下的php代码

2.复制如下代码

注意:这里复制需要修改下 变成如下

    /*
     * 获取推流地址
     * 如果不传key和过期时间,将返回不含防盗链的url
     * @param domain 您用来推流的域名
     *        streamName 您用来区别不同推流地址的唯一流名称
     *        key 安全密钥
     *        time 过期时间 sample 2016-11-12 12:00:00
     * @return String url
     */
    private static function getPushUrl($domain, $streamName, $key = null, $time = null){
    if($key && $time){
          $txTime = strtoupper(base_convert(strtotime($time),10,16));
          //txSecret = MD5( KEY + streamName + txTime )
          $txSecret = md5($key.$streamName.$txTime);
          $ext_str = "?".http_build_query(array(
                "txSecret"=> $txSecret,
                "txTime"=> $txTime
          ));
    }
return "rtmp://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : "");
}

需要改成私有的

3.到这里好了以后需要写播放的接口

        $streamName = date("YmdHis");
        
        $key = ""; //key为配置推流域名主ke
        $domain = "";//您的推流域名
        $time = date('Y-m-d H:i:s', strtotime('+365day'));//过期时间
        $txTime = strtoupper(base_convert(strtotime($time), 10, 16));
        //调用上方的私有接口
        $data = self::getPushUrl($domain, $streamName, $key, $time);
        //txSecret = MD5( KEY + streamName + txTime )
        return "http://" . $domain . "/live/" . $streamName . '.flv';

其实最后返回的地址参考的是腾讯云的地址,只需要将地址分割传进参数即可

到这里就结束了代码上传到GitHub

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐