- 资源介绍
- 更新记录
- 安装教程
免责:本脚本仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请自行负责
今年二月份的时候我发了下面这个帖子
利用掘金搭建自己的视频床
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1110792&highlight=%CA%D3%C6%B5%B4%B2
当时只是零散的记录了想法实现的过程,就没有再深入关注
然后昨晚上太渴了,喝了4瓶红牛,睡不着了,闲的蛋疼,写了个一键脚本
只需要你在脚本里定义好要切片上传的视频路径和临时文件存储路径,运行后就能得到一个m3u8的在线地址,和一个m3u8的播放器地址
所有的资源都同步在掘金的cdn上,所以一点成本没有,国内访问速度还杠杆的,下面是实现截图
我拿我电脑上珍贵的麻豆测试下,还是很不错的
在线m3u8文件地址:https://user-gold-cdn.xitu.io/2020/7/12/17340116a0566a56
播放器地址我暂时删了,毕竟车速太快了哈哈
食用方法如下:
第一:电脑安装ffmpeg
安装方法:https://www.cnblogs.com/wuxun1997/p/12447190.html
第二:电脑安装node环境,因为我脚本是用nodejs写的
安装方法:https://jingyan.baidu.com/article/7082dc1c8a6bcca40b89bd0d.html
最后新建个目录,在里面新建个app.js,把我下面的代码扔进去(修改视频文件地址为你自己的视频文件地址,修改缓存文件夹地址为你自己的文件夹地址)
然后在当前目录下命令行执行npm i下载依赖
依赖下载好后执行node app,等待进度跑完就可以在命令行看到生成的在线视频地址了
其他的话,我注释写的很清楚了,有问题再问
要是一会儿还睡不着的话,再考虑考虑写出带界面的软件,暂时将就下吧
代码如下:
[JavaScript] 纯文本查看 复制代码const exec = require(\’child_process\’).exec;
const superagent = require(\’superagent\’);
const { sleep } = require(\’sleep\’);
const fs = require(\’fs\’);
const glob = require("glob");
const videoDir = \’./MD-0030.mp4\’;//视频路径
const tsDir = \’./tmp/\’;//切片及m3u8文件存储路径
const size = 1;//视频切片大小,数字越大单个切片时常越长体积越大,掘金图传限制最大图片大小为10M
const content = `ffmpeg -i ${videoDir} -c copy -map 0 -f segment -segment_list ${tsDir}index.m3u8 -segment_time ${size} ${tsDir}%03d.ts`;//切片命令
// 调用shell脚本方法
async function shell(content) {
return new Promise((resolve, reject) => {
exec(content, (error, stdout, stderr) => {
if (error) {
reject(error);
}
else {
resolve(stdout)
}
});
})
}
// 上传到掘金方法(频繁重传)
async function upload(path) {
try {
let s = await superagent.post(\’https://cdn-ms.juejin.im/v1/upload\’)
.query({
bucket: "gold-user-assets"
})
.attach(\’file\’, path, \’1.png\’)
let url = s.body.d.url.https
console.log(url)
return url
} catch (error) {
// 出错表示掘金上传频繁拒绝了,暂停3秒继续请求
sleep(3)
console.log(error)
return upload(path)
}
}
(async () => {
// 进行视频切片
console.log(\’开始视频切片\’)
await shell(content);
console.log(\’视频切片完成\’)
// 获取到切片列表
let tsList = glob.sync(`${tsDir}*.ts`);
// 获取到m3u8实体内容
let m3u8Content = fs.readFileSync(`${tsDir}index.m3u8`).toString();
// console.log(m3u8Content)
console.log(\’开始上传切片\’)
// 上传切片
for (let index in tsList) {
let ele = tsList[index]
let tsName = ele.split(\’/\’)[ele.split(\’/\’).length – 1]
// 执行上传
let url = await upload(ele)
// 获取到上传地址后替换原版的地址
m3u8Content = m3u8Content.replace(tsName, url)
// 删除已上传的ts
fs.unlinkSync(ele)
console.log(`上传成功,当前上传进度:${parseInt(index) + 1}/${tsList.length}`)
console.log(\’==============================\’)
}
console.log(\’切片上传完成\’)
// 获取到所有地址后,将新地址写出并同步上传到掘金
fs.writeFileSync(`${tsDir}main.m3u8`, m3u8Content);
let m3u8Url = await upload(`${tsDir}main.m3u8`)
console.log(\’m3u8文件上传成功\’)
// 构造在线播放地址
let playUrl = `[url=https://badyun.gitee.io?url=]https://badyun.gitee.io?url=[/url]${encodeURIComponent(m3u8Url)}`
console.log(\’==============================\’)
// 清空文件缓存
fs.unlinkSync(`${tsDir}index.m3u8`)
fs.unlinkSync(`${tsDir}main.m3u8`)
console.log(`m3u8在线链接:${m3u8Url}`)
console.log(`视频在线播放器地址:${playUrl}`)
})()
猜你喜欢
-
【Python】某果TV POST登陆
2020-09-07 -
EMLOG 附件下载样式插件
2020-09-29 -
无需服务器,天翼云盘自动签到 + 抽奖,每月扩容3G+
2020-09-01 -
各种某音去水印源码,PHP、Python、易语言……
2020-10-19 -
Sngine v2.7.2-社交PHP微博平台源码免授权带APP源码
2020-06-17 -
【按键精灵】根据滑块验证的特征破解斗鱼客户端滑动验证码
2020-09-01 -
无需服务器,网易云音乐自动签到 + 刷歌
2020-09-01 -
Shell脚本实现光速联自动提速
2020-10-19 -
【仿百度网盘文件管理系统】.NET高仿百度网盘文件分享带分享与会员功能
2020-08-28 -
【触动精灵】深海水族馆放置点击游戏自动升级 Lua 脚本
2020-09-07
-
PHP爬虫 获取 Bilibili 视频封面图
2020-09-07 -
记一次签到网站js逆向与python实现
2020-09-07 -
【Python】知乎回答下载神器,图片/视频/gif动图均可下载
2020-10-19 -
BanID:zxj397298976【发布软件捆绑Cobalt Strike远控木马】 – 『站点公告』
2020-09-29 -
萌果影视全新原生Java影视App双端源码对接苹果CMSV10
2020-05-22 -
【Java】SpringBoot+Mybatis-Plus使用webSocket实现一对一聊天 后台
2020-10-19 -
[Python]爬取微信公众号文章
2020-09-01 -
考试软件,题型解析+自动阅卷系统+成绩分析+考试结果保存
2020-09-07 -
C++猜数字
2020-09-29 -
【VB6】N年前写的抽奖程序,稍微升级了下
2020-09-01
猜你在找
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
小酒资源吧 » 【Javascript】视频本地一键切片上传至掘金,搭建自己的视频床
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 小酒资源吧
- 2020-09-01Hi,初次和大家见面了,请多关照!