PHP 生成七牛云直播间

142 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 一、生成直播间 

<?php

 require VENDOR_PATH.'qiniu/lib/Pili_v2.php';
        $ak = "七牛ak";
        $sk = "七牛sk";
        $hubName = "直播间名称";
      //创建hub
         $mac = new \Qiniu\Pili\Mac($ak, $sk);
        $client = new \Qiniu\Pili\Client($mac);
        $hub = $client->hub($hubName);
        //获取stream 直播流名称
        $streamKey = "shop".session('store_id').'_'.$zid;
        $stream = $hub->stream($streamKey);
        try {
            //创建stream
            $resp = $hub->create($streamKey);
        } catch (\Exception $e) {
            return 1;
        }
        //推流地址  3600 一小时
        $update['push_url'] = \Qiniu\Pili\RTMPPublishURL("pili-publish.baidu.com", $hubName, $streamKey, 259200, $ak, $sk);
        //RTMP 直播放址
        $update['rtmp_url'] = \Qiniu\Pili\RTMPPlayURL("pili-live-rtmp.baidu.com", $hubName, $streamKey);
       //HLS 直播地址
        $update['hls_url'] = \Qiniu\Pili\HLSPlayURL("pili-live-hdl.baidu.com", $hubName, $streamKey);
        //HDL 直播地址
        $update['flv_url'] = \Qiniu\Pili\HDLPlayURL("pili-live-hls.baidu.com", $hubName, $streamKey);

这样就可以获取下面的直播流  需要使用其他的流播放 可以查看我的这篇文章Nginx+FFmpeg rtsp转flv实时预览_杰姆小生的博客-CSDN博客_前端rtsp转flv

​编辑

二、直播回放

<?php
        require VENDOR_PATH.'qiniu/lib/Pili_v2.php';
//        require join(DIRECTORY_SEPARATOR, array(VENDOR_PATH, 'qiniu\lib', 'Pili_v2.php'));
        $ak = "七牛ak";
        $sk = "七牛sk";
        $hubName = '直播间名称';
        $streamKey = "shop".session('store_id').'_'.$zid;//直播流名称
         $mac = new \Qiniu\Pili\Mac($ak, $sk);
        $client = new \Qiniu\Pili\Client($mac);
        $hub = $client->hub($hubName);
        $hubone = new \Qiniu\Pili\Hub($mac, $hubName);
        $stream = $hub->stream($streamKey);
        $data['code'] = 1;
        $data['url'] = '';
        $data['records'] = array();
        //$startDate  开始时间   
        //$endDate    结束时间
        try {
            //保存直播数据
            $fname = $stream->save($startDate, $endDate);
            $data['url'] = "http://dianbo.baidu.com/".$fname['fname'];
        } catch (\Exception $e) {
            $data['code'] = 0;
        }
        try {
            //查询推流历史
            $records = $stream->historyActivity($startDate,$endDate);
            $data['records'] = $records["items"];
            return $data;
         } catch (\Exception $e) {

        }