告别 App 限制!一个干净好用的本地投屏工具(媒体投屏器)

66 阅读4分钟

前言

这个"大屏为王"的时代,把电脑上的视频投到电视或投影仪上早已不是新鲜事。但如果你和我一样,曾经为了找一款简单好用的 Windows 投屏工具而翻遍各大软件站,结果发现要么要手机扫码、要么强制双端安装、甚至还要注册登录,那大概率会感到无奈。

安卓生态里投屏软件一抓一大把,Windows 上却少有真正干净、直接的解决方案。正因如此,作者决定自己动手写一个媒体投屏器。

项目介绍

媒体投屏器(Media Caster)是一款完全基于本地运行的桌面应用,无需依赖第三方服务器,也不需要在接收端安装任何额外软件。

它利用标准的 DLNA/UPnP 协议,将你电脑上的音视频文件直接推送到支持该协议的智能电视、投影仪或盒子设备上。

整个过程只需点击几下,就能实现"点哪播哪",真正做到了开箱即用。

项目功能

工具的核心目标是"简单有效"。

目前它已实现以下功能:

  • 自动扫描局域网中所有支持 DLNA 的设备,比如小米电视、华为智慧屏、极米投影仪等;

  • 内置文件浏览器,支持 MP4、MKV、AVI、MP3 等主流音视频格式;

  • 投屏后可远程控制播放状态:播放、暂停、停止、跳转进度;

  • 支持音量调节与静音切换,操作直观;

  • 所有媒体通过内置的轻量级 HTTP 服务器临时共享,确保播放流畅不卡顿。

项目特点

与其他商业投屏软件不同,媒体投屏器没有广告、不需要账号、不收集用户数据。它不依赖云服务,所有逻辑都在本地完成,既保护隐私,又避免了网络延迟。

更重要的是,它遵循开放协议——只要你的设备支持 DLNA(绝大多数智能电视都支持),就能无缝连接。

整个界面采用 PyQt5 构建,简洁清爽,操作逻辑贴近普通用户习惯,即便是非技术人员也能快速上手。

项目技术

系统要求

操作系统: Windows 10/11, macOS 10.15+, Ubuntu 18.04+

Python版本: Python 3.7 或更高版本

内存要求: 最少 4GB RAM

网络要求: 设备与电脑需在同一局域网

技术栈

程序使用 Python 3.7+ 编写,前端界面基于 PyQt5 实现,保证了跨平台兼容性与良好的用户体验。

核心投屏能力依托于 python-dlnaminiupnpc 等开源库,用于设备发现与控制指令发送。

媒体传输方面,程序启动时会自动开启一个临时 HTTP 服务器,将选中的本地文件以 URL 形式提供给目标设备,从而实现"推送播放"。

整个架构轻量、模块清晰,便于后续扩展,比如未来加入字幕支持或多文件队列。

项目效果

从打开程序到视频在电视上播放,通常不超过 10 秒。选择文件后,点击目标设备名称,电视会自动弹出播放提示,确认后即可全屏观看。

播放过程中,电脑端的控制面板能实时同步状态,拖动进度条或调整音量都能即时生效。

即使是在 1080P 视频下,只要局域网带宽正常(百兆以上),基本无缓冲卡顿。对于家庭观影、会议演示或教学展示等场景,非常实用。

d902546e209e2874a9249ab330ebfd4b_%E9%A2%84%E8%A7%88%E5%9B%BE.png

项目源码

项目已开源托管在 Gitee,安装也非常简单:克隆仓库后,创建虚拟环境并安装依赖,运行 main.py 即可启动。

详细步骤如下:

git clone https://gitee.com/yqsphp/MediaCast.git
cd MediaCast
python -m venv venv
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate
pip install -r requirements.txt
python main.py

总结

做这个工具的初衷很简单:解决自己日常投屏的痛点。没想到写完之后,不仅满足了需求,还收获了不少朋友的积极反馈。它或许没有商业软件那么花哨的功能,但胜在干净、直接、可靠。

如果大家也厌倦了各种限制重重的投屏 App,不妨试试这个小工具——也许它正是你一直在找的那个"刚刚好"的解决方案。

关键词

Python、PyQt5、DLNA、投屏工具、本地媒体、UPnP、开源、跨平台、HTTP服务器、智能电视

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!