hp无人值守录制抖音直播
为了家中老人,老人有的时候不在家,关注的主播直播内容就容易错过,用python是可以录制,但是家中老人还不会弄电脑,就衍生了这个项目-_-!
原理
- 安装ffmpeg
- php解析抖音直播地址
- php调用ffmpeg将转换过来的直播地址进行录制
- 添加定时任务,定时调用脚本
安装ffmpeg
我的环境是centos7.x,先更新下yum,采用yum的方式进行安装ffmpeg,先更新下当前yum
安装Nux Dextop Yum 源(慎重操作)
yum -y update
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
安装FFmpeg 和 FFmpeg开发包
sudo yum install ffmpeg ffmpeg-devel -y
测试ffmpeg是否成功安装
sudo yum install ffmpeg ffmpeg-devel -y
测试ffmpeg是否成功安装
ffmpeg
这里补充下,我的环境是宝塔环境,宝塔之前的一键包安装ffmpeg已经失效了,问题很多,在这里不建议大家采用宝塔的一键包,我现在的安装方案是采用宝塔论坛 CentOS7宝塔面板安装ffmpeg视频切片模块 yaojiu的安装方式。
解析抖音直播地址
这里的抖音直播源解析是通过我前一段时间写的php抖音直播源抓取进行的解析,原理就是所有的信息都在 window.__INIT_PROPS__这个部分当中,而这部分内容是json结构的,所以我们只要将这部分代码转为能够读取的json然后进行调用就可以,需要的小伙伴自行观看。
这里放上thinkphp抓取抖音直播源的源码:
<?php
/****抖音直播解析接口*******/
namespace app\controller;
use app\BaseController;
use think\facade\Request;
class Douyin extends BaseController
{
public function index(){
$url=Request::param('url');
$html=$this->get_douyin($url);
preg_match_all('/window.__INIT_PROPS__ =(.*)<\/script><\/head>/', $html, $jsmatch);
if(!empty($jsmatch[1][0])){
$content=json_decode($jsmatch[1][0],1);
if(!empty($content['/webcast/reflow/:id']['room']['stream_url']['hls_pull_url'])){
$data=array(
'code'=>200,
'success'=>true,
'data'=>array(
'url'=>$content['/webcast/reflow/:id']['room']['stream_url']['hls_pull_url'],
'title'=>$content['/webcast/reflow/:id'][