功能详解

从电脑里到电视上,每一步都自己做

下面按使用流程拆开讲:先看投屏与画质,然后是同时投多台、投视频、声音与指针, 最后是安装更新、系统要求,以及实机跑出来的数据。

局域网投屏电脑端主界面
电脑端 · 投屏主界面688 × 679
01 / 投屏与画质

桌面直接投,画质按网络挑

电脑端采集整个桌面,用显卡硬件编码压缩后发出去。 分辨率固定 1920 × 1080,不会因为桌面尺寸变化而改变。

画质档位码率什么时候用
流畅4 Mbps无线信号一般、家里设备较多时
标准8 Mbps默认档,多数家庭网络够用
高清14 Mbps有线连接或信号良好的时候
抗卡顿三档调的是"缓冲",不是画质。 无线网络难免有抖动,档位越高、电视端存下的帧越多,画面就越稳, 代价是延迟略微增加。画面开始一顿一顿时,先调这里通常比降画质更有效。
02 / 同时投多台

一台电脑,投到家里每块屏

怎么操作

点一下勾上,再点一下取消

点「重新搜索」后,同一局域网里的电视会列进设备列表。 勾选多台就是同时投多台 —— 同一画面分发过去,不是各自投不同的内容。

  • 设备列表显示电视名与 IP,方便区分是哪一台
  • 「清空选择」一键取消全部勾选
  • 投屏过程中也能调整勾选
操作作用
重新搜索刷新局域网内的电视列表
点击设备行勾选 / 取消勾选该电视
清空选择取消全部已勾选的电视
开始投屏把画面投到所有已勾选的电视
03 / 投视频

把视频推到电视,电视端连软件都不用开

这是和"投屏"分开的另一条路径:不投桌面,而是把电脑上的视频文件推给电视播放。 电视端不需要打开我们的软件,推送过去就能看。

播放控制

推过去之后,控制权还在电脑上

  • 暂停 / 继续:随时叫停,不用跑过去按电视遥控器
  • 循环播放:适合放课件、样片、展示素材
  • 音量加减:在电脑上直接调电视的音量
  • 进度显示:当前播放位置一目了然
电脑端投视频页:选择视频、推送到电视、停止,以及暂停、循环、音量与进度控制
电脑端 · 投视频688 × 379
04 / 声音与指针

声音对得上,指针看得见

声音同步

音频走独立通道,自动对齐

画面和声音分成两条通道传输,电视端会自动把音频对齐到画面上, 不需要手动调延迟。音频编码为 AAC 128kbps 立体声。

项目说明
音频编码AAC 128 kbps · 立体声
对齐方式独立通道传输,电视端自动对齐
鼠标指针投屏时电视画面上会叠加鼠标位置
托盘运行窗口可最小化到托盘,不占桌面
05 / 安装与更新

电视端不用 U 盘来回插

三条安装路径

怎么装、怎么升级

  • 装电视端(U 盘):把 APK 拷到 U 盘,插到电视上安装
  • 装电视端(推送):电脑端点「安装 APK」,直接推到电视安装
  • 升级电视端:电视端应用内检查更新,或由电脑端推送新版本
  • 电脑端:免安装,双击即用;删掉 exe 就等于完全卸载
端安装卸载
电脑端免安装,双击 exe删掉 exe 即可
电视端U 盘安装 / 电脑端推送系统应用管理里卸载
06 / 系统要求

用什么设备能跑

核心前提只有一条:电脑和电视接在同一个局域网里(同一台路由器,有线无线都行)。 不依赖互联网。

端系统要求备注
电脑端 Windows 10 / 11 · 64 位 优先用显卡硬件编码(NVIDIA NVENC / Intel / AMD);
检测不到硬件编码器时自动回退软件编码,此时 1080p60 可能跑不满帧率
电视端 Android 5.0(API 21)及以上 · armeabi-v7a 适用于 Android 智能电视 / 电视盒子;
已在海信 VIDAA(Android 6.0)实机验证
网络 同一局域网 不经过互联网;手机热点也可以
07 / 实测与安全

数据是实机跑出来的

项目结果
连续投屏 369 秒 · 21563 帧上屏 · 58.4 fps
端到端延迟 P50 = 72 ms
音频闭环 收包 850 包,闭环正常
异常情况 异常关键字命中 0
测试环境 海信 VIDAA · Android 6.0 · 1920 × 1080 电视
数据与安全

画面不出内网,卸载不留痕

  • 传输范围:画面与声音只在局域网内点对点传输(UDP), 不经过任何服务器、不上传云端
  • 电视端网络:只在局域网内监听,不出网
  • 电脑端落盘:只在系统临时目录写运行日志 %TEMP%\cast-sender.log, 不写注册表、不写配置文件
  • 电视端存储:用系统自带的偏好存储保存设置,卸载即清除
技术栈
电脑端Win32 + Media Foundation + 显卡硬件编码(H.264 CBR)+ UDP 发送
电视端Kotlin + MediaCodec 硬解,零第三方依赖(不用 AndroidX)