TranscodingEndController.class.php
2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?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');
}
}