收起左侧

手搓了一个网页播放器,可以用omnibox看播放组播转单播的视频了

0
回复
82
查看
[ 复制链接 ]

2

主题

0

回帖

0

牛值

江湖小虾

年前装了OmniBox,真是好东西,就是电视直播这里没有好的源。

想到家里原本就用udpxy把电信的组播转了单播,信号稳定,心想可否直接上这个电信的m3u。
结果播放不了。查询了发现单播流是ts流,视频是h264,音频是mpeg2 ,OmniBox的网页播放器只支持hls流。否则可以实现在任何有浏览器的设备上看家里的IPTV了。

找了一圈现成项目,都没有解决我的需求。正好最近在玩智能体,用自然语言对话写了一个项目(ai真牛,编程平权了,门外汉也能写程序了)。

项目地址:

https://github.com/kronus09/TsToHls

主要实现了把我的电信m3u文件转换成代理m3u文件,项目调用ffmpeg,把原始的ts流视频用copy方式流切片成hls流,音频转为acc,实现了网页播放。

转换的时候我把其他格式都过滤掉了,只保留了视频是h264,音频是mpeg2的ts流。这样我的飞牛就不会卡了。

还弄了简易直播预览界面,不用OminBox也能直接播放。

项目简陋,但够我在家里用,有相同需求的同学可以试试,提提意见。

115540t6vbvbse9me69ebv.jpg

TsToHls - 直播流转码工具

将 TS 协议直播流转换为 HLS 格式的工具,让家里的iptv可在浏览器内播放,支持输出 M3U 频道订阅,使用OmniBox等项目播放更顺畅。

特性

  • 📺 实时转码 TS 协议为 HLS(配合组播转单播软使用,仅保留h264的ts流切片为hls流,音频转码为acc)
  • 🗂 M3U/M3U8 文件管理
  • 🚀 轻量高效(只转音频,系统负载低),支持容器化部署
  • 🎨 简易Web管理界面,可用页面直接播放预览

推荐安装方式

Docker Compose 部署

  1. 创建 docker-compose.yml 文件:

services:
  tstohls:
    image: ghcr.io/kronus09/tstohls:latest
    container_name: tstohls
    restart: unless-stopped
    ports:
      - "15140:15140"
    volumes:
      - ./m3u:/app/m3u
      # 如果你需要手动上传原始 iptv.m3u 到容器,也可以映射整个根目录或特定文件
      # - ./iptv.m3u:/app/iptv.m3u
    tmpfs:
      # 将切片目录 hls_temp 挂载到内存中
      # size=512M 足以支撑 10-20 个频道同时点播(每个频道切片约占用 20-30MB)
      - /app/hls_temp:size=512M,mode=1777,exec
    environment:
      - GIN_MODE=release
      - TZ=Asia/Shanghai
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
  1. 启动服务:
docker-compose up -d
  1. 访问管理界面:
http://服务器IP:15140

配置说明

  • 数据持久化./data/m3u 目录存储上传的 M3U 文件
  • 临时存储:HLS 切片使用内存盘提高性能
  • 时区:默认 Asia/Shanghai,可按需修改
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则