IPTV O11-drm 加密视频推流工具 docker 版本

wechatofficial · 2024年06月06日 · 最后由 linyouming 回复于 2024年12月17日 · 8381 次阅读

O11 介绍:
一款可以推拉流被 drm 加密的 mpd 媒体流服务器,docker 基于 ubuntu 构建,因为 alphine 轻量化镜像不能正常运行 O11。

因原系统文件未开源,且不支持 ARM 架构,本容器仅允许运行在 X86 架构主机和服务器上。

众所周知 github 上发布的 o11 系统有提取 /etc/passwd 文件漏洞,经过 docker 封装后,始作俑者将提取不到任何有效的敏感信息。

使用方法:

docker run -itd --name=o11 --restart=always -p 自定义端口:1234 wechatofficial/o11:latest

访问:http://ip:port

日志查看:

docker logs -f o11

安全加固请参考:https://blog.csdn.net/yeqinghanwu/article/details/125979997

iptables -I INPUT -s 35.203.210.16 -j DROP  

iptables -A OUTPUT -d 35.203.210.16 -j DROP

声明:本容器仅用于学习交流测试使用,请严格遵守当地法律法规,合理使用本容器。严禁用于违法项目,因此产生的法律纠纷与本容器无关。

预告:后续会陆续制作 xtreamUI flussonic 等 IPTV 系统镜像。

点赞,可惜 o11 不支持 arm,我的龟壳用不了 😩

感谢楼主,辛苦啦

coding 回复

随后我用你之前发的命令 手搓一个工具

4 楼 已删除

问个小白问题 能把内网组播的推流吗

wechatofficial 回复

用这个工具后 arm 平台也能用?

有源千里来相会

wechatofficial 回复

请问一下为什么映射宿主机目录无效?我想把录像的 rec 目录映射一下。

设置简单,测试了下,成功推流,对于一些不是很稳定的源还是不错的,我看了下会缓存 30 秒。正在研究 docker 之间访问,现在推流 dokcer 访问不了 4gtv docker。。。。。

成功把 4gtv 推流了,播放端不用再挂代理了

minor8429 回复

4gtv 为什么要推流,直接看啊

coding 回复

旁路由,设备平时没有挂梯子。

想请问可以用来推 mytvsuper 吗?我把 key 放进去也不行,请教一下大佬 播放地址:https://mytvsuper.livednow.com/JUHD key: 2c045f5adb26d391cc41cd01f00416fa:XXXXXXXXXXXXXXXX

minor8429 回复

要用直链+key 来推流

问下怎样挂载目录到容器上并应用?想推流几个小时出现内存增高自动关闭,ffmpeg 模式怎样启用?

minor8429 回复

请问源怎么导入,用什么格式的

我想知道怎么玩。

feng 回复

我用来推 4gtv 的,把直播源填进去就可以,好简单。界面不复杂,自己摸索几分钟就知道了

coding pixman 已支持 MytvSuper 直播源 提及了此话题。 06月11日 21:21

安装好了,但都是鬼佬文,看不懂!

zkkm2580 回复

网页翻译呗,其实也没几个单词

部署成功,建议 config 选为 on demand

24 楼 已删除
minor8429 回复

能不能请教一下怎样设置直播源推流?

minor8429 回复

能给出个简单教程吗,看不明白界面

1.“uesrs”:“add uesr” - 添加用户,“password” - 设置密码。“admin”“web access”打钩,最后“save users”。

2.“congifg”:

(1)“new provided”右边空白位置“provider name”添加列表名称,填完后按回车即可。

(2)“add stream”右边空白位置“stream name”添加直播源名称,如:cctv1,填完后回车。

(3)此时最下面会出现刚添加的直播源名称,“mode”保持“live”,在“manifest”空白位置填入直播源地址,点击上面的“save provider”保存直播源,再点一下直播源最左边的播放三角按键,顺利的话,status 就会显示 starting,然后就变成“streaming”,这是表示推流成功,如果没有显示“streaming”,则点击一下看看哪里出了问题。如果是 mytvsuper,还需要在右边的空白大框里面填写 key,地址从 mytvsuper.m3u 获取,具体如下:

#EXTINF:-1 tvg-id="翡翠台" tvg-name="翡翠台" tvg-logo="https://assets.livednow.com/logo/.png翡翠台" group-title="綜合", 翡翠台 #KODIPROP:inputstream.adaptive.manifest_type=mpd #KODIPROP:inputstream.adaptive.license_type=clearkey #KODIPROP:inputstream.adaptive.license_key=xx58b9XXXX7622c465a6205eb2252b8ed:2d2fd7XXb1XXXb1e28XXXX82688XXX8480 http://192.168.8.16:8234/mytvsuper/J

直播源地址为:http://192.168.8.16:8234/mytvsuper/J key 为:xx58b9XXXX7622c465a6205eb2252b8ed:2d2fd7XXb1XXXb1e28XXXX82688XXX8480

3.顶部“playlist”,点解下拉小三角,点击“full”,获取播放列表,把“http://192.168.X.XX:XXXX/playlist.m3u

扔进去播放器,enjoy

我的使用环境是旁路由里面开 docker,所以不用在 docker 里面设置代理,需要走代理的域名就在 openclash 规则里面改就是了,这个大佬有说明。

我的只是简单操作,具体深入的请大佬补充

feng 回复

直播源是 v6 地址么?docker 如果要支持 v6 有点麻烦,百度下也有。假如不是 v6 地址,检查下能否播放先啊,我用这个 docker 推流 mytvsuper,4gtv 都没有问题,也有推大街源,都是成功的,不过推组播就不行,也没有深入研究了

minor8429 回复

v6 确实没成功,v4 可以

feng 回复

v6 其实也没必要推吧,基本都很稳定。我推流是因为客户端没有全局翻(只有浏览器用代理),不过话说。。。推了也没怎么看,就是图个折腾

32 楼 已删除
33 楼 已删除

我推流成功,但是播放只有声音无画面,有同学遇到过相同问题吗? mytv 相关节目会有问题,其余的正常

Captain 回复

当我把 Mode 设置为 FMP4 HLS 后,问题解决,播放正常了。

我使用 o11 成功推流后电脑能成功观看了。我有个疑问,我打算在家里电视观看,我该如何获得推流后的 url 呢?

Captain 回复

解决了。开放了一个/playlist.m3u 能够获取列表

mytvsuper 字幕如何设置才可以推流成功

Captain 回复

  我看你局域网推流,是什么样的应用场景啊?我是外国的 VPS 服务器推流,国内可以不用梯子观看。

ohjust 回复

是我观看 mysupertv 的节目说是 dash 流,很多播放器都无法加载,推流后才能正常播放。

主帖说 o11 有漏洞,还有其他开源的推流工具推荐吗?

对于 o11 我需要手动在界面一个一个创建频道 (stream),再把 url 和 clear key 贴进去,十分复杂。我看了文档也没找到相关操作的 api,有什么自动批量导入的思路吗?

在停用所有推流后,进后台,docker logs -f o11,出现大量数据,快速滚动,都是乱码。这个正常吗?

iptables 限制 Docker IP 和端口访问

等保整改安全加固时,使用 iptabels 限制 docker 端口不生效,限制非 docker 容器端口可生效。经查阅大量资料,发现 Docker 容器创建时会自动创建 iptables 策略,Docker 使用的 i 规则链是 DOCKER-USER,所以需使用 iptables 对 DOCKER-USER 链做限制。

目录

一、【模板参考】限制与 Docker 主机的连接

二、【实际案例】iptables 限制 Docker 端口和 IP

1、案例 1:限制 IP 访问

2、案例 2:限制 docker 指定端口访问策略

3、查询 DOCKER-USER 策略

4、删除 DOCKER-USER 策略

5、保存 DOCKER-USER 策略,默认临时生效

三、访问测试

一、【模板参考】限制与 Docker 主机的连接 默认情况下,允许所有外部源 IP 连接到 Docker 主机。要仅允许特定的 IP 或网络访问容器,请在 DOCKER-USER 过滤器链的顶部插入一个否定的规则。

#限制除 192.168.1.1 地址外的其他地址访问 $ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP 请注意,您将需要更改 ext_if 与主机的实际外部接口相对应。!排除以外。您可以改为允许来自源子网的连接。

#限制除 192.168.1.0/24 网段外的其他地址访问 $ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.0/24 -j DROP 最后,您可以指定要接受的 IP 地址范围--src-range(请记住-m iprange 在使用--src-range 或时也要添加--dst-range):

#限制除 192.168.1.1-192.168.1.3 外的其他地址访问 $ iptables -I DOCKER-USER -m iprange -i ext_if ! --src-range 192.168.1.1-192.168.1.3 -j DROP 您可以结合使用-s 或--src-range 与-d 或--dst-range 一起控制连续源地址和连续目标地址。例如,如果 Docker 守护程序同时监听 192.168.1.99 和 10.1.2.3,则可以制定特定于 10.1.2.3 并保持 192.168.1.99 打开的规则。

二、【实际案例】iptables 限制 Docker 端口和 IP 1、案例 1:限制 IP 访问 1.1 首先需添加一条禁止所有 IP 访问 docker 策略

iptables -I DOCKER-USER -i eth0 -s 0.0.0.0/0 -j DROP 注:允许上方命令后,如果出现容器无法上网问题,请将下方策略添加到上方策略前。

iptables -I DOCKER-USER -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT 1.2 在依次添加所有允许访问 docker 的 IP,允许 172.27.100.101 地址访问 docker

iptables -I DOCKER-USER -i eth0 -s 172.27.100.101 -j ACCEPT 2、案例 2:限制 docker 指定端口访问策略 2.1 禁止所有 IP 访问 docker 的 389 端口

iptables -I DOCKER-USER -i eth0 -p tcp --dport 389 -j DROP 2.2 允许 172.27.30.92 地址访问 docker 的 389 端口

iptables -I DOCKER-USER -i eth0 -s 172.27.30.92 -p tcp --dport 389 -j ACCEPT 3、查询 DOCKER-USER 策略 [root@test ~]# iptables --line -nvL DOCKER-USER Chain DOCKER-USER (1 references) num pkts bytes target prot opt in out source destination
1 8 432 ACCEPT tcp -- eth0 * 172.27.30.92 0.0.0.0/0 tcp dpt:389 2 13 740 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:389 3 188 12524 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
4、删除 DOCKER-USER 策略 #删除 DOCKER-USER 链第一条(num)规则 iptables -D DOCKER-USER 1 5、保存 DOCKER-USER 策略,默认临时生效 [root@test ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 确定 ] 三、访问测试 telnet 测试:

[root@zabbix_server ~]# telnet 127.0.0.1 8075 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection timed out nc 端口测试:

[root@node ~]# nc -zv 172.27.30.94 389 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.27.30.94:389. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

老师您好,请问是否可以推流到其他地址,例如 rtmp://之类的,而不是单纯推流到本地服务器,感谢您的解答!

minor8429 回复

没有 add stream”右边空白位置“stream name”添加直播源名称,如:cctv1,填完后回车。怎么弄

minor8429 回复

望指教

求教各位大佬,我的 o11 对 mytvsuper 推流不成功,请求失败,但我用 wget 是可以请求的,直接官网也是可以看的,试过直连和代理,都是一样报错:context deadline exceeded (Client.Timeout exceeded while awaiting headers)

推流 mytvsuper 已经把字幕都选上,但用 potplayer 观看还是没有字幕。

liuyong 回复

请问大佬 M1M2 芯片怎么跑这个镜像?

liuyong 回复

我也是遇到同样的问题

Devin 回复

直接 Docker 命令跑啊,我的是 M1 Pro 芯片。Mac 问题还未解决,我直接在斐讯 N1 软路由上定时任务生成静态 mytvsuper-tivimate.m3u 使用了,电视上用的是 Tivimate

各位大佬这个是什么意思啊

Captain 回复

怎么解决?

我推流成功后,我不打开直播,服务器会一直做流量的吗

liuyong 回复

我之前可以推流,现在跟你的情况一样,

wechatofficial 回复

大佬请教 arm64 怎么安装

期待一个支持 arm 的镜像

Error: HTTP Get returned status code 400

mytvsuper 推流失败,怎么回事,已经完全按照你们的方法来做了。

liuyong 回复

openwrt 怎么设置定时任务啊?

Captain 回复

请问一下你是用什么播放器在电视上看?我推流成功了,可以在电脑上用 potplayer 看,但是链接放在 tivimate 看不了......

有没有发现,它会 reset ? 之前的设置没有保存。

各位大佬,我在控制版面找不到輸入電視台 Logo 的入口,請問在那個地方輸入?謝謝

無線新聞台" tvg-name="無線新聞台" tvg-logo="https://assets.livednow.com/logo/.png無線新聞台

推流对服务器配置有要求吗,还是只要带宽,流量够就可以了

coding 回复

大佬 3 楼说的手搓工具求一个

wechatofficial 回复

期待支持 arm 架构!感谢!

现在拉不了镜像了,怎么办?

What's next: View a summary of image vulnerabilities and recommendations → docker scout quickview wechatofficial/o11:latest Error response from daemon: failed to resolve reference "docker.io/wechatofficial/o11:latest": failed to authorize: failed to fetch oauth token: unexpected status from GET request to https://auth.docker.io/token?scope=repository%3Awechatofficial%2Fo11%3Apull&service=registry.docker.io: 401 Unauthorized

greatty 回复

docker desktop 启动了吗?

iamsammajor 回复

用代理源搞定了

佬,访问http://ip:port这一步,我填了主机地址和设置的端口为什么显示无法访问?

o11 管理密码忘记了,有救吗大佬

Atom 回复

删除 o11 容器重建一遍

请问 o11 推流怎么设置加密,里面的 Keys / CDM Script 应该要怎么设置

wechatofficial 回复

求 ARM 主机推流攻略

76 楼 已删除

各位大佬,我有 mpd 直播源,我需要怎样配置 licenseURL 在 config 里?没有文档参考吗?

liuyong 回复

佬,你在抓取链接的时候是怎么抓取 kid 和 key 的,我用猫抓但是不会搞这个。。

Captain 回复

有相同的疑惑,哪位大佬能指点一下!🍺

fdcluo 回复

相同问题。你解决了吗?

服务器只要不停止就一直在推流,一个月就能干几个 T 流量,有没有办法没人看的时候就自动停止推流,有人看就开始?

root 回复

请问下搞定了吗?我也遇到同样问题

需要 登录 后方可回复, 如果你还没有账号请 注册新账号