tv c <en|zh_CN|...> # change/update language
- 一键管理 nginx 脚本
- 一键管理 openresty 脚本
- 一键管理 xray 脚本
- 一键管理 v2ray 脚本
- 一键管理 armbian 脚本
- 一键管理 proxmox ve 脚本
- 一键管理 ibm cloud foundry 脚本
- 一键管理 cloudflare partner,workers 脚本
- 一键管理 FFmpeg 脚本
wget -q https://git.io/nx.sh && bash nx.sh
nx # 打开 Nginx 管理面板
- 使用官方 crossplane 解析配置
- 支持修改最多五级指令
wget -q https://git.io/or.sh && bash or.sh
or # 打开 OpenResty 管理面板
wget -q https://git.io/xray.sh && bash xray.sh
x # 打开 xray 管理面板
wget -q https://git.io/V2.sh && bash V2.sh
# git.io/V2.sh(大写的 V)
v2 # 打开 v2ray 管理面板
wget -q https://git.io/arm.sh && bash arm.sh
arm # 打开 Armbian 管理面板
- docker
- dnscrypt proxy
- openwrt (旁路由)
- openwrt-v2ray
- xray/v2ray core 切换
- 一键配置透明代理(直连国内, 代理国外), 配置文件保存/切换
- NAT类型检测
wget -q https://git.io/pve.sh && bash pve.sh
pve # 打开 Proxmox VE 管理面板
- nbfc
- dnscrypt proxy
- openwrt-v2ray
- xray/v2ray core 切换
- 一键配置透明代理(直连国内, 代理国外), 配置文件保存/切换
wget -q https://git.io/ibm.sh && bash ibm.sh
ibm # 打开 ibm CF 管理面板
ibm v2 # 打开 ibm v2ray APP 管理面板
ibm x # 打开 ibm xray APP 管理面板
wget -q https://git.io/cf.sh && bash cf.sh
cf # 打开 cloudflare partner,workers 管理面板
cf w # 打开 cloudflare workers 管理面板
Mac/Linux 一键获取最优 IP 可以用脚本 cloudflare-fping
- 多 CFP 管理
- 勿更改公开的 CFP host key
- 开启 workers 监控
- 可以在超过请求数( 默认 100000 )时自动上传 worker 到其他账号并移动域名 CNAME 记录
- 准备工作
- 脚本添加用户
- [ 可省略 ] 需要 Token (API 令牌): workers 和 zone 编辑权限 或 使用 Global API Key (官网添加或查看)
- 脚本添加源站 CNAME 记录(一个 CNAME 对应一个 worker), 所有域名必须在同一 cloudflare 账号
- 如果是新账号需要登录官网完成验证邮箱并点击 workers 设置站点域名
- 可以设置中转 IBM CF
wget -q https://git.io/iptv.sh && bash iptv.sh
tv # 打开 iptv 管理面板
始终用最新的脚本,升级方式
- 管理面板(推荐)
或
- 用这里的 iptv.sh 覆盖 /usr/local/bin/tv ,删除主目录 /usr/local/iptv 下的 lock 文件
cd scripts
docker build -t ffmpeg-h265-static .
docker run -it ffmpeg-h265-static
./build.sh
tv 4g # 打开 4gtv 频道管理面板
tv d # 添加演示频道
- tvb
- fengshows
- lotus macau
- youtube
- hbo asia
cx # 打开 Xtream Codes 账号/频道 管理面板
tv v # 直接打开 VIP 频道面板
- IP 控制
- 自带 m3u, epg
-
自带加密 NODE.JS <- HTTP -> NginX <- HTTPS -> CLIENT
-
自带防护
-
自带监控
-
自带防盗链
-
自建节目表
-
自带 VIP 模块
-
添加频道
- 可以用命令行,详见 tv -h
- 也可以使用 shell 对话,输入 tv 打开面板
-
管理频道
- 输入 tv 打开 HLS 面板
- 输入 tv f 打开 FLV 推流管理面板
-
主目录在 /usr/local/iptv
- channels.json [ 默认值和频道列表 ]
- FFmpeg-git*-static
- jq
- live/ [ hls输出目录 ]
- node/ [ 加密 session ]
-
自动更新指定的json文件
"sync_file":"/usr/local/nginx/html/channels.json", # 公开目录的json,多个文件用空格分隔
"sync_index":"data:2:channels", # 必须指定到m3u8直播源所在的数组这一级,比如这里 ObjectJson.data[2].channels , 多个 sync_index 用空格分隔
"sync_pairs":"chnl_name:channel_name,chnl_id:output_dir_name,chnl_pid:pid,chnl_cat=港澳台,url=http://xxx.com/live,schedule:output_dir_name", # 值映射用:号,如果直接赋值用=号(公开的live根目录会自动补上完整的m3u8地址)
"schedule_file":"/usr/local/nginx/html/schedule.json" # 使用命令 tv s 自建节目表
-
tv e 手动修改 channels.json
-
tv s 打开节目表管理面板 CCTV/台湾/香港/国外 节目表
- 手动选择需要每日更新节目表的频道
- 自动配置到 cron
-
tv ffmpeg 在主目录下自建 FFmpeg 镜像
-
tv ts 打开广电直播源 注册/登录 面板
- 在命令行注册账号
- 登录账号以获取 mpegts 链接
- 同步 mpegts 链接到 channels.json
广电直播源mpegts转hls的设置(1核以上, 根据核数和带宽调整) "video_codec": "libx264", "audio_codec": "copy", "quality": "40", "bitrates": "800", 分片大小700~800K,但是非常吃CPU 也可以直接 copy ,相当于复制 "video_codec": "copy", "audio_codec": "copy", "output_flags": "" 原画输出,不吃CPU,但是分片大,吃带宽
-
nx 安装管理 nginx 后才能开启 防护 AntiDDoS
-
tv m 开启监控 flv推流 和 hls 输出目录,用来应对直播源出现变化导致 ffmpeg 无法继续分割的情况
- 防护 AntiDDoS 默认每2分钟清除被禁 ip,很多时候因为直播源重启/网络等问题浏览器会不停的发送请求同一个文件,所以会有误伤,选项:
- 封禁端口(可多个, 默认80)
- 是否开启 SYN flood 攻击防护
- 是否开启 iptv 防护
- 封禁时间(默认120秒)
- 封禁等级(1-9)(默认6,数值越低越严格,也越容易误伤)
- 防盗链 选项:
- 是否开启
- 每小时随机重启次数
- 每当重启 FLV 频道更改成随机的推流和拉流地址
- 每当重启 HLS 频道更改成随机的 m3u8 名称和分片名称
- 每隔多少秒更改加密频道的 key
- 监控 FLV 选项:
- 是否监控超时(默认20秒)
- 重启次数(默认20次)
- 监控 HLS 选项:
- 是否监控超时(默认120秒,必须大于分片时长*分片数目)
- 最低比特率 (默认低于500kb/s会自动重启频道)
- 最大分片 (默认5MB,超过会自动重启频道)
- 重启次数(默认20次)
- 定时检查直播源(如可用即开启频道)的间隔时间
- tv m s 停止监控
- tv m l 查看监控日志
- 在 leech 直播源的时候必须打开监控选项,以应对输出低比特率/直播源服务器频繁重启/音轨丢失/等问题
- 防护 AntiDDoS 默认每2分钟清除被禁 ip,很多时候因为直播源重启/网络等问题浏览器会不停的发送请求同一个文件,所以会有误伤,选项:
-
tv l 列出所有开启的 flv 和 hls 频道
使用方法: tv -i [直播源] [-s 分片时长(秒)] [-o 输出目录名称] [-c m3u8包含的分片数目] [-b 比特率] [-p m3u8文件名称] [-C] [-l] [-P http代理]
-i 直播源(支持 mpegts / hls / flv / youtube ...)
可以是视频路径
可以输入不同链接地址(监控按顺序尝试使用),用空格分隔
-s 分片时长(秒)(默认:6)
-o 输出目录名称(默认:随机名称)
-l 非无限时长直播, 无法设置切割分片数且无法监控(默认:不设置)
-P ffmpeg 的 http 代理, 直播源是 http 链接时可用(默认:不设置)
-p m3u8名称(前缀)(默认:随机)
-c m3u8里包含的分片数目(默认:5)
-S 分片所在子目录名称(默认:不使用子目录)
-t 分片名称(前缀)(默认:跟m3u8名称相同)
-a 音频编码(默认:aac) (不需要转码时输入 copy)
-v 视频编码(默认:libx264) (不需要转码时输入 copy)
-f 画面或声音延迟(格式如: v_3 画面延迟3秒,a_2 声音延迟2秒 画面声音不同步时使用)
-d dvb teletext 字幕解码成的格式,可选: text,ass (默认: 不设置)
-q crf 值(如果设置了输出视频比特率,则优先使用 crf 控制视频质量)(数值 0~63 越大质量越差), 多个 crf 用逗号分隔
(默认: 不设置 crf 值)
-b 输出视频的比特率(kb/s)(默认:900-1280x720)
如果已经设置crf视频质量值,则比特率用于 -maxrate -bufsize
如果没有设置crf视频质量值,则可以继续设置是否固定码率
多个比特率用逗号分隔(注意-如果设置多个比特率,就是生成自适应码流)
同时可以指定输出的分辨率(比如:-b 600-600x400,900-1280x720)
可以输入 omit 省略此选项
-C 固定码率(只有在没有设置crf视频质量的情况下才有效)(默认:否)
-e 加密分片(默认:不加密)
-K Key名称(默认:随机)
-z 频道名称(默认:跟m3u8名称相同)
也可以不输出 HLS,比如 flv 推流
-k 设置推流类型,比如 -k flv
-H 推流 h265(默认: 不设置)
-T 设置推流地址,比如 rtmp://127.0.0.1/flv/xxx
-L 输入拉流(播放)地址(可省略),比如 http://domain.com/flv?app=flv&stream=xxx
-m ffmpeg 额外的 INPUT FLAGS
(默认:-copy_unknown -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2000 -rw_timeout 10000000 -y -nostats -nostdin -hide_banner -loglevel fatal)
如果输入的直播源是 hls 链接,需去除 -reconnect_at_eof 1
如果输入的直播源是 rtmp 或本地链接,需去除 -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2000
如果要查看详细日志 fatal 改成 error / warning / ...
-n ffmpeg 额外的 OUTPUT FLAGS, 可以输入 omit 省略此选项 (除非有特殊需求, 不需要转码时请省略此选项)
(默认:-g 50 -sc_threshold 0 -sn -preset superfast -pix_fmt yuv420p -profile:v main)
-
使用crf值控制视频质量:
tv -i http://xxx/xxx.ts -s 6 -o hbo1 -p hbo1 -q 15 -b 1500-1280x720 -z 'hbo直播1'
-
使用比特率控制视频质量[ 默认 ]:
tv -i http://xxx/xxx.ts -s 6 -o hbo2 -p hbo2 -b 900-1280x720 -z 'hbo直播2'
-
不需要转码的设置: -a copy -v copy -n omit
-
不输出 HLS, 推流 flv :
tv -i http://xxx/xxx.ts -a aac -v libx264 -b 3000 -k flv -T rtmp://127.0.0.1/flv/xxx
-
或者输入 tv 打开 HLS 面板, tv f 打开 FLV 面板,使用方法 Enter