TranscodingEndController.class.php 2.37 KB
<?php
/**
 * 转码结束回调接收
 * Created by PhpStorm.
 * User: zhoutao
 * Date: 2018/1/25
 * Time: 上午10:43
 */

namespace Frontend\Controller\Callback;

use Common\Service\StudioFileService;
use Common\Service\StudioPlaybackService;

class TranscodingEndController extends AbstractController
{
    public function Index()
    {
        // 一般都是 数据流里给的 但这次 POST 里给出来了
        $callbackData = !empty($this->callBackData) ? $this->callBackData : $_POST;
        /**
         * $callbackData
         * 封面
         *  'coverUrl' => 'http://1251064102.vod2.myqcloud.com/d0be3960vodtranscq1251064102/d11de7cf7447398154845708321/snapshot/1519632246_199249006.100_0.jpg',
         * 标清
         *  'sd' => 'http://1251064102.vod2.myqcloud.com/d0be3960vodtranscq1251064102/d11de7cf7447398154845708321/v.f20.mp4',
         * 原来的
         *  'default' => 'http://1251064102.vod2.myqcloud.com/f9d44bb8vodcq1251064102/d11de7cf7447398154845708321/playlist_eof.m3u8',
         * 文件 ID
         *  'fileId' => '7447398154845708321',
         */
        \Think\Log::record('收到的数据:::' . var_export($callbackData, true));

        // 根据 fileId 查找直播
        $sutdioFileServ = new StudioFileService();
        $fileDetail = $sutdioFileServ->get_by_conds(['file_id' => $callbackData['fileId']]);
        if (empty($fileDetail)) {
            exit('SUCCESS');
        }

        // 写入回放地址
        $playBackServ = new StudioPlaybackService();
        $playBackServ->insert([
            'cover_url' => $callbackData['coverUrl'],
            // FIXME liyifei 2018-06-04 15:22:01 与三哥确认,将原来默认使用sd标清视频变更为hd高清视频
            'sd' => isset($callbackData['hd']) && !empty($callbackData['hd']) ? $callbackData['hd'] : $callbackData['sd'],
            'file_id' => $callbackData['fileId'],
            'lm_id' => $fileDetail['lm_id'],
            'default' => $callbackData['default'],
            // 视频顺序 (这里本质上是没有顺序来源的, 那么用的是视频的落地时间, 理论上先落地的是前面一段视频)
            'number' => $fileDetail['created'],
            // FIXME liyifei 2018-06-04 15:23:52 记录UC冗余数据,以便后面切换视频清晰度(sd、hd等)
            'callback_data' => serialize($callbackData),
        ]);

        exit('SUCCESS');
    }
}