经过作者萌咖一个多月的调教, 差不多没啥问题了.
上传失败的会自动循环尝试上传10次.
语雀单文件限制 20M (下载不限流量), 超过必然上传失败.
——-
[2020/03/09 11:20:32]
更新: 语雀修复了上传流量统计的BUG, 上传流量总量将会有限制(之前是无限制上传流量). 普通会员的单文件也被限制到了10M (之前是20M).
结论: 语雀是没法继续滥用, 已上传的文件无影响. 接口还有很多,换其他家继续~
该项目相关的脚本可以继续使用,把上传脚本更换一下就行了。
示例: 冰雪奇缘2 (无字幕视频源切片 + WebVTT格式外挂字幕 + 语雀CDN); 视频条可随意拖动.
示例地址: https://api.moeclub.org/Player/movie/Frozen.II.m3u8
# 安装 ffmpeg .
# 上传: 修改 upload_xxxx.sh 文件并保存, 然后将文件重命名为 upload.sh
# 发布: 修改 publish.sh 文件并保存.
# 将 upload.sh, publish.sh, m3u8.sh, media.sh 放入同一个文件夹中.
# 用法 (相关文件设置好后,可以一键切片并发布到网站上.)
bash media.sh <不含特殊字符的文件名.mp4> [特殊选项]
# 特殊选项: 数字; 可选参数,默认为0;
# 0: 自动根据文件比特率计算合适的切片大小. (目标文件大小小于 20M, 一般情况下没问题.)
# 1: 强制重新编码. 重新编码比特率为 2400k .(一般用于非 H264编码 文件切片,速度较慢)
# 2: 自定义切片时间. 当为2时切片时间为3秒, 当大于等于3时切片时间为特殊选项数字.
# 大约3秒一个切片 (我一般用这个命令)
bash media.sh file.mp4 3
# 强制重新编码
bash media.sh file.mp4 1
# 默认模式:自动计算分片大小
bash media.sh file.mp4
文档:
获取媒体文件时长
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1
获取媒体文件大小
ffprobe -v error -show_entries format=size -of default=noprint_wrappers=1:nokey=1
获取媒体文件比特率
ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1
获取视频文件编码
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1
视频文件直接切片
ffmpeg -i -vcodec copy -acodec aac -bsf:v h264_mp4toannexb -map 0 -f segment -segment_list output.m3u8 -segment_time 10 output_%03d.ts
M3U8合成视频文件
ffmpeg -allowed_extensions ALL -i “meida.m3u8” -c copy “media.mp4”
分片时长计算(VBR, 大约)
分片时间 = (文件限制大小[M] * 1024 * 1024) / (媒体文件比特率[b] * 突发码率比率 / 8)
突发码率比率: 1.35 (视情况取值, 大于等于1)
字幕格式转换(webvtt.org)
一键切片并发布
# 安装 ffmpeg .
# 上传: 修改 upload_xxxx.sh 文件并保存, 然后将文件重命名为 upload.sh
# 发布: 修改 publish.sh 文件并保存.
# 将 upload.sh, publish.sh, m3u8.sh, media.sh 放入同一个文件夹中.
# 用法 (相关文件设置好后,可以一键切片并发布到网站上.)
bash media.sh <不含特殊字符的文件名.mp4> [特殊选项]
# 特殊选项: 数字; 可选参数,默认为0;
# 0: 自动根据文件比特率计算合适的切片大小. (目标文件大小小于20M, 一般VBR编码方式下没问题.)
# 1: 强制重新编码. 重新编码比特率为 2400k .(一般用于非H264视频编码的文件切片,速度较慢)
# 2: 自定义切片时间. 当为2时切片时间为3秒, 当大于等于3时切片时间为特殊选项数字.
项目地址:https://github.com/MoeClub/Note/tree/master/ffmpeg