免费电视直播容易失效,昨天小羿才给大家分享了「打造属于自己的电视直播「IPTV Pro」+「2000+直播源」」后来又发现了免费开源项目「HBO直播」可以直接搭建属于自己的电视直播网站,只要你有 VPS / NAS / Web环境功能的路由器都可以搭建,也可以电脑本地直接用。
频道上默认有HBO直播 + 集各广电直播源,包括有港澳台哦,不过有些广电的直播源是需要注册账号才能看的。
HBO直播使用:
如果电脑本地用,直接打开“iptv.html”网页文件就可以观看了。需要部署到VPS / NAS,把 public 文件夹里面的文件上传到你的服务器里面。
添加/修改本地直播源,需要打开channels.json文件,然后自行添加。
想获取直播源地址,可以参考这篇「简易小巧看M3U直播格式安卓APP「Simple IPTV」+ 8000个直播源」。
修改远程源地址,打开 iptv.html 或 (部署的用户需要打开 js/index.js)文件,找到 remoteJson 自行替换。
iptv.sh 一键管理 IPTV 脚本:
- 【自动化】HLS-Stream-Creator
- 自建节目表
- 添加频道
- 可以用命令行,详见 tv -h
- 也可以使用 shell 对话,输入 tv 打开面板
- 管理频道
- 输入 tv 打开面板
- 主目录在 /usr/local/iptv
- channels.json [ 默认值和频道列表 ]
- HLS-Stream-Creator 本尊
- FFmpeg
- jq
- live/ [ hls输出目录 ]
bash -c "$(wget --no-check-certificate -qO- https://raw.githubusercontent.com/woniuzfb/iptv/master/iptv.sh)"
自动更新指定的json文件:
"sync_file":"/var/www/html/channels.json", # 公开目录的json
"sync_index":"data:2:channels", # 必须指定到m3u8直播源所在的数组这一级,比如这里 ObjectJson.data[2].channels
"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":"/var/www/html/schedule.json" # 使用命令 tv s 自建节目表
操作频道,添加,删除,重启等都会自动更新指定的json文件
快捷键:
- tv e 手动修改 channels.json
- tv s 更新 150+ 节目表
- tv s hbo 更新 hbo 节目表
- tv s disney 更新迪士尼频道节目表
参数详解:
使用方法: tv -i [直播源] [-s 段时长(秒)] [-o 输出目录名称] [-c m3u8包含的段数目] [-b 比特率] [-p m3u8文件名称] [-C]
-i 直播源(仅支持mpegts) -s 段时长(秒)(默认:6) -o 输出目录名称(默认:随机名称) -p m3u8名称(前缀)(默认:随机) -c m3u8里包含的段数目(默认:5) -S 段所在子目录名称(默认:不使用子目录) -t 段名称(前缀)(默认:跟m3u8名称相同) -a 音频编码(默认:aac) -v 视频编码(默认:h264) -q crf视频质量(如果设置了输出视频比特率,则优先使用crf视频质量)(数值1~63 越大质量越差) (默认: 不设置crf视频质量值) -b 输出视频的比特率(bits/s)(默认:900-1280x720) 如果已经设置crf视频质量值,则比特率用于 -maxrate -bufsize 如果没有设置crf视频质量值,则可以继续设置是否固定码率 多个比特率用逗号分隔(注意-如果设置多个比特率,就是生成自适应码流) 同时可以指定输出的分辨率(比如:-b 600-600x400,900-1280x720) 这里不能不设置比特率(空),因为大多数直播源没有设置比特率,无法让FFmpeg按输入源的比特率输出 -C 固定码率(CBR 而不是 AVB)(只有在没有设置crf视频质量的情况下才有效)(默认:否) -e 加密段(默认:不加密) -K Key名称(默认:跟m3u8名称相同) -z 频道名称(默认:跟m3u8名称相同) -m ffmpeg 额外的 INPUT FLAGS (默认:"-reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2000 -timeout 2000000000 -y -thread_queue_size 55120 -nostats -nostdin -hide_banner -loglevel fatal -probesize 65536") -n ffmpeg 额外的 OUTPUT FLAGS (默认:"-g 30 -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'
或者输入 tv 打开面板,使用方法 Enter
总结:
自己搭建以后看直播不求人了,这个开源项目虽然看起来有点简陋,但非常实用,会前端的可以自己美化下。另外自己网站搭建的话,不支持https,因为大部分直播源地址不支持https。
HBO项目:
- 项目地址:https://github.com/woniuzfb/iptv
- 下载地址:https://www.lanzout.com/i8dlk0h
- 测试地址:http://www.xiaoyi.vc/tv/