环境介绍:
windows10
apache2.4
php7.4
php-curl扩展 composer require php-curl-class/php-curl-class @dev
ffmpeg https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z 解压后需要配置下bin目录环境变量
demo:
5个php文件
Dm.php
<?php
include "Net.php";
include "dms.php";
// Net.php配置缓存目录 '/source' 并手动创建此目录
// 配置本地域名 当前文件夹@www/dm/
$localhost = 'http://dm.com/dm';
// 配置视频输出信息
$id = "落叶归根"; // 本地视频保存id,不同视频请修改此id
// 要下载的.m3u8网络位置
$url = "http://104.208.72.200/cache/584531e770dc47b47dd5e650437d8b73.m3u8";
$root_path = "/out/"; // 输出目录,请手动创建
download($localhost,$id,$url,$root_path);
dms.php
<?php
function outList($url, $file)
{
if (file_exists($file))
return;
$net = new Net();
$res = $net::get($url);
$miss = explode("\n",$res);
$miss = array_filter($miss);
$list = "";
foreach ($miss as $re){
if(substr($re,0,1)==='#') {
$list.=$re."\n";
continue;
}
if(strpos($re,'/')!==false){
$tmp =explode('/',$re);
$list.=$tmp[count($tmp)-1]."\n";
}else{
$list.=$re."\n";
}
}
file_put_contents($file, $list);
}
function outHls($url, $path)
{
$net = new Net();
$net->multi_huancun = true;
$net->yasuo = false;
$net->log = true;
$net->multi_binfa = 100;
$host = getHost($url);
$res = $net::get($url);
$tmp = explode("\n", $res);
$tmp = array_filter($tmp);
$urls = [];
foreach ($tmp as $value) {
if (substr($value, 0, 1) === '#')
continue;
if(substr($value,0,strlen('http'))==='http'||substr($value,0,strlen('https'))==='https'){
$link = $value