视频完美切片存储方案 附自动化处理脚本

视频储存是很多人的一个难题…自己买个服务器又需要带宽有需要硬盘够大!

看看怎么是一个完美的存储.

开始操作

原理 : 视频切片成 m3u8 之后,视频会变成一段段的 ts 格式的视频然后上传至图床


 $value) {
	echo "处理第" . $value . '个切片' . "\n";
	$ali = upload('./' . $v_path . 'player' . $value . '.ts');
	$m = str_replace('player' . $value . '.ts', $ali, $m);
	file_put_contents('./' . $v_path . 'play.m3u8', $m);
}
 
echo "处理完毕" . "\n";
echo "播放链接为:/" . $v_path . 'play.m3u8';
 
function upload($file) {
	$post['file'] = file_path($file);
	$post['scene'] = 'aeMessageCenterV2ImageRule';
	$post['name'] = 'player.jpg';
	$rel = get_curl('https://kfupload.alibaba.com/mupload', $post, 'iAliexpress/6.22.1 (iPhone; iOS 12.1.2; Scale/2.00)');
	$rel = json_decode($rel, true);
 
	return $rel['url'];
}
 
function get_curl($url, $post = 0, $ua = 0) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	// 不验证证书
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	// 最大执行时间
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
	curl_setopt($ch, CURLOPT_TIMEOUT, 120);
	$httpheader[] = "Accept:application/json";
	$httpheader[] = "Accept-Encoding:gzip,deflate,sdch";
	$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";
	$httpheader[] = "Connection:close";
	$ip = mt_rand(48, 140) . "." . mt_rand(10, 240) . "." . mt_rand(10, 240) . "." . mt_rand(10, 240); //随机 ip
	$httpheader[] = 'CLIENT-IP:' . $ip;
	$httpheader[] = 'X-FORWARDED-FOR:' . $ip;
	curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
	if ($post) {
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	}
 
	if ($ua) {
		curl_setopt($ch, CURLOPT_USERAGENT, $ua);
	} else {
		curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0");
	}
	curl_setopt($ch, CURLOPT_ENCODING, "gzip");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$ret = curl_exec($ch);
	curl_close($ch);
	return $ret;
}
function mkFolder($path) {
	if (!is_readable($path)) {
		is_file($path) or mkdir($path, 0700);
	}
}
function file_path($file) {
	if (class_exists('CURLFile')) {
		return $post['file'] = new \CURLFile(realpath($file));
	} else {
		return $post['file'] = '@' . realpath($file);
	}
}
 

把这个另存为 m3u8.php(什么名都成!这个就随便命名一下)

运行命令:

php m3u8.php 视频的储存路径 视频完整路径

如:
php m3u8.php mp4 wwwroot/test/test.mp4

注意:这个接口只能上次小于 5MB 以下的图片(视频切片)所以切片完文件大小必须小于 5MB,还有就是 PHP 本身就不适合写脚本,单线程处理,很慢.建议用 PY 或者 java(我不会,希望有大佬写一下),其他的自己看代码就能懂,其实没啥.

转载自 KIENG 博客

版权声明:
作者:超级管理员
链接: https://apecloud.ltd/article/detail.html?id=65
来源:猿码云个人技术站
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
/static/admin/img/weixin.jpg/static/admin/img/zfb.jpg
<<上一篇>
PHP-全民K歌直链信息解析源码
下一篇>>