在使用MCT转码、VOD点播和LSS直播以及DOC文档转码时,可以通过通知接口来获取直播会话的一些状态回调;
主要有两个场景:
1、当MCT、DOC转码任务、VOD媒资处理以及LSS直播会话状态变化时,MCT、DOC、VOD、LSS服务端可以向这个通知接口POST一个消息,当通知接口获取到这个通知消息后,应用层相应的操作;
2、LSS录制文件生成时,我想知道这个录制文件的位置信息,如果是录制到BOS,我可以通过通知接口获取录制文件所存放的BOS路径,如果是录制到VOD,我可以通过通知接口获取录制文件的mediaId,从而做更多的操作;
通知接口的原理:开通一个公网可访问的HTTP接口,能够被MCT、VOD、LSS服务访问到,并且能够接受POST消息。
为什么使用通知接口:因为MCT、DOC转码任务、VOD媒资处理、LSS直播录制等这些任务都是异步的操作,如果使用同步的方式会大大降低并发处理能力,所以采用通知接口这种回调方式来处理;
简单介绍一下使用方法:
首先需要一个web server,运行一个通知接口用于接收HTTP POST消息,这个接口可以是任意语言编写的;
下面是一个php编写的示例:该示例通过接收LSS服务发送过来的POST消息后,向同级目录的post.log文件中写入接收到的POST消息;
使用说明:需要在该页面同级目录创建一个post.log文件记录接收的POST消息,并且该文件需要有被http进程写入的权例如:-rw-rw---- 1 apache apache 479 6月 23 16:02 post.log
演示代码正文如下:
# cat /var/www/html/notification.php
header("Content-type:text/html;charset=utf-8");
$data = file_get_contents('php://input');
$log = urldecode($data);
$logfile = fopen("post.log", "a") or die("Unable to open file!");
fwrite($logfile, $log);
fclose($logfile);
?>
那么我如何在LSS中使用该接口呢?
创建LSS直播会话时,指定该接口地址即可,比如我的这个通知消息的php页面地址是/notification.php,那么我在创建会话的时候,指定向这个接口发送消息。
创建完成后,我可以使用tail -f post.log查看我收到的并写入post.log文件的消息:
# tail -f /var/www/html/post.log
会话状态改变的消息:
录制到VOD文件生成发布的消息:
我获取到这些通知回调信息后,就可以做一些自动化的工作,比如自动生成点播播放页面等,具体的这些回调信息感兴趣的可以自己慢慢研究,不多说;
同样的,在MCT、VOD中也有相应的通知接口,使用方法是类似的。
如果觉得《mct接收_MCT/VOD/LSS/DOC通知接口的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!