TiviMini
IPTV 播放器 · iPhone · iPad · Apple TV · Android

轻、快、省电的
IPTV 播放器

自研 RustMedia 播放内核,视频只用硬件解码。导入 m3u / txt 列表,点一下就播。Android 安装包只有 3.3 MB。

  • iPhone · iPad
  • Android 手机 · 平板
  • Apple TV · Android TV
频道列表
首页 · 看图选台
  • 0.26秒

    点下到画面动起来

  • 10%

    播放 1080i 时应用 CPU 占用

  • 3.3MB

    Android 安装包

  • 12毫秒

    解析 2 万个频道的列表

自研内核

RustMedia:为直播源而写的播放内核

从拉流协议、解封装到码流整理,播放链路的核心全部用 Rust 自研,iPhone、Apple TV、Android 共用同一份代码。不打包 FFmpeg;网络走系统自带的网络栈,解码交给芯片里的硬件解码器,画面直接上屏。

  1. 系统网络栈HTTP · TLS · 代理随系统
  2. 识别源看地址和开头字节判断格式
  3. 协议与解封装TS · FLV · HLS · RTMP · RTSP · 组播
  4. 码流整理参数集 · 关键帧 · 场编码合帧 · 时间戳
  5. 硬件解码VideoToolbox · MediaCodec
  6. 直接上屏系统图层合成,不碰像素

轻

内核编译后约 1 MB,只依赖一个音频库。Android 安装包 3.3 MB;iPhone、iPad 与 Apple TV 是同一个应用。

一份代码,四个平台

列表解析、拆包、起播策略、回看规则都在内核里,修一处全平台受益,各端行为一致。

不碰网络,只做计算

内核不带 HTTP / TLS,网络交给系统:代理、证书、HTTP/2 与系统一致,也更省电。

稳

所有接口都有防崩溃保护,异常流的缓冲都有上限。连续换台 90 次,内存不涨、不崩溃。

起播速度

点下去,画面就动

直播中途加入要等关键帧。RustMedia 拿到第一个关键帧就上屏;缓冲不够时以 0.92 倍速边播边攒,声音变速不变调,追上后回到正常速度。

点下到画面动起来

TiviMini · RustMedia
264 毫秒
通用播放器方案
1128 毫秒

播放时应用 CPU 占用

TiviMini · RustMedia
10.1 %
通用播放器方案
27.4 %
  • 按下即连手指按到频道上就开始连接,松手进入播放页时数据已经在路上。
  • FCC 快速换台支持运营商 FCC 服务器(电信 / 中兴 / 烽火与华为两种),从最近的关键帧开始推流,单播与组播无缝衔接。
  • 疑难源照样快没有 IDR 的直播流从带参数集的 I 帧起播,丢掉开放 GOP 的前导帧,不花屏、不黑屏。
  • 4K 也快4K H.265 Main10、50 帧、36 Mbps 的直播,在电视盒子上 0.35 秒出画。

测试条件:骁龙 8 至尊版手机,Android 16,正式版;1080i H.264 组播转 HTTP 源;按下即连,5 次取中位数。对照组为同机同源的 Media3 ExoPlayer,同样只用硬件解码。4K 数据来自瑞昱芯片电视盒子;列表解析为内核单独计时。

首页预览图

看图选台

每个频道,一张实时画面

首页格子里显示的不是台标,而是各频道刚截下的实时画面:正在播什么,一眼就知道。

  • 只截看得见的只截屏幕上的频道,快速翻页时不截,停下来才截。
  • 截到就停拿到第一个关键帧就断开,硬解一帧缩小保存,一张约 0.1–0.2 秒。
  • 不反复截截过的不自动重截,省流量省电;想看最新画面,在频道选项里刷新。
  • 流量可控可设为仅 Wi-Fi 截图,也可以关闭,只显示台标。

协议与格式

常见直播源,原生支持

不转码、不装插件。下面这些都由 RustMedia 或系统播放器原生播放。

拉流协议

  • HTTP / HTTPS 直连 TS
  • HLS · TS 分片
  • HLS · fMP4 / 加密
  • HTTP-FLV
  • RTMP
  • RTMPS
  • Enhanced RTMP(H.265)
  • RTSP
  • RTSPS
  • RTSP over TCP
  • RTSP over UDP
  • MPEG-TS over RTP
  • UDP 组播
  • RTP 组播
  • SSM 指定源组播
  • UDP 单播
  • FCC 快速换台
  • MP4 点播

转发与网络

  • udpxy
  • msd_lite
  • rtp2httpd
  • 运营商 IPTV 网络
  • HTTP 302 跳转
  • RTSP 重定向
  • 自定义跳转
  • 按主机设请求头

视频编码

  • H.264 / AVC
  • H.265 / HEVC
  • 10-bit Main10
  • 4K · 50 / 60 帧
  • 隔行 1080i
  • PAFF 场编码
  • MBAFF

音频编码

  • AAC · ADTS
  • AAC · LATM / LOAS
  • AAC 5.1
  • MP2
  • MP3
  • AC3(杜比数字)
  • E-AC3(杜比数字+)
  • G.711 A 律 / μ 律

列表与节目单

  • m3u / m3u8
  • txt(含 #genre# 分组)
  • XMLTV 节目单
  • gzip 节目单
  • tvg-id · tvg-name · tvg-logo
  • 同名多线路
  • 多份播放列表

回看与认证

  • 回看 default · append
  • shift · timeshift
  • flussonic
  • xc
  • vod
  • RTSP Basic / Digest 认证
  • 自定义 User-Agent · Referer

系统播放器播不了的,RustMedia 能播

  • HLS 里的 MP2 音频
  • TS 分片里的 H.265
  • 伪装成图片的 TS 分片
  • 没有 IDR 的直播流
  • 只认 UDP 的 RTSP 服务器
  • 华为 / 中兴写法的 RTSP

视频只用硬件解码:设备没有对应硬件解码器的编码(如 MPEG-2、AVS2)会明确提示「无法硬解」,不悄悄软解让设备发烫。

省电

省电,是第一原则

只用硬件解码

视频交给芯片里的专用解码器,CPU 几乎不参与。

画面直通显示

系统图层硬件合成;播放时界面 0 次重画。

不预加载

不提前连接其他频道;退到后台,CPU 与网络归零。

没变化就零流量

列表、节目单先问服务器有没有更新,没变不下载、不解析、不刷新。

系统原生界面

UIKit 与 Android 系统控件,不用跨端框架,启动快、占用少。

少唤醒

收数据攒约 40 毫秒再交给内核,网络线程 CPU 从 6.6% 降到 0.7%。

Apple 设备的硬件解码器不支持隔行 H.264,这一种由系统自带解码器处理,信息面板如实标明。

多端

手机、平板、电视,一套体验

每个平台都用系统原生界面,按各自的操作方式设计。

Apple TV · Android TV

tvOS 18 · Android 10 及以上
  • 节目单优先的首页,列表、网格两种排列
  • 遥控器全键操作、数字键换台
  • 扫码用手机添加播放源、编辑自定义播放
  • Apple TV:1080i 运动自适应去隔行,25i 变 50p
  • Apple TV:杜比 AC3 / E-AC3 按系统设置输出
  • Android TV:原生组播与 FCC,接上 IPTV 网络即播
  • Android TV:杜比音频系统不支持时自动兜底
  • Android TV:应用内一键升级

左右滑动查看更多截图

Apple TV · Android TV · 网格排列
网格排列
Apple TV · Android TV · 频道列表
频道列表
Apple TV · Android TV · 节目单
节目单
Apple TV · Android TV · 全屏播放与换台
全屏播放与换台
Apple TV · Android TV · 信息面板
信息面板
Apple TV · Android TV · 回看
回看
Apple TV · Android TV · 扫码用手机添加
扫码用手机添加

两端是同一套电视界面,截图来自 Apple TV。

iPhone · iPad

iOS / iPadOS 18 及以上
  • 首页预览图,看图选台
  • 播放页上下滑动换台
  • 画中画
  • 节目单与回看
  • 收藏、历史、多份播放列表

左右滑动查看更多截图

iPhone · iPad · 首页 · 看图选台
首页 · 看图选台
iPhone · iPad · 首页 · 列表
首页 · 列表
iPhone · iPad · 播放页
播放页
iPhone · iPad · 节目单
节目单
iPhone · iPad · 信息面板
信息面板
iPhone · iPad · iPad 首页
iPad 首页
iPhone · iPad · iPad 播放页
iPad 播放页

Android 手机 · 平板

Android 10 及以上
  • 3.3 MB 安装包
  • RustMedia 与 ExoPlayer 两个内核可切换
  • 画中画
  • 节目单与回看
  • 应用内一键升级

左右滑动查看更多截图

Android 手机 · 平板 · 首页 · 看图选台
首页 · 看图选台
Android 手机 · 平板 · 首页 · 列表
首页 · 列表
Android 手机 · 平板 · 播放页
播放页
Android 手机 · 平板 · 节目单
节目单
Android 手机 · 平板 · 信息面板
信息面板

截图中的频道名、台标和节目单均为虚构演示内容。

更多亮点

该有的都有,不该有的没有

回看

兼容主流回看写法,默认 7 天;节目内可拖动,播完自动接下一个。

节目单

XMLTV 边读边解析;按 tvg-id、名称、常见简写自动匹配频道。

自定义播放

按主机替换跳转、设置请求头,支持 *.域名与 IP 段;配错也不会无限循环。

多线路

同名频道自动合并为多条线路,一键切换,记住上次的选择。

看图选台

首页预览图只截看得见的频道,快速翻页不截;台标按显示尺寸缓存。

打开就查更新

304 与内容比对,没变不刷新;起播 5 秒内不检查,不和播放抢带宽。

信息面板

码率、分辨率、帧率、丢包、解码方式,以及起播各环节耗时。

三种界面语言

简体中文、繁體中文、English,跟随系统,也可手动切换。

TiviMini 只是播放器,不提供任何频道、节目或播放列表。请使用自己有权观看的播放源。