前言
这个"大屏为王"的时代,把电脑上的视频投到电视或投影仪上早已不是新鲜事。但如果你和我一样,曾经为了找一款简单好用的 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-dlna 和 miniupnpc 等开源库,用于设备发现与控制指令发送。
媒体传输方面,程序启动时会自动开启一个临时 HTTP 服务器,将选中的本地文件以 URL 形式提供给目标设备,从而实现"推送播放"。
整个架构轻量、模块清晰,便于后续扩展,比如未来加入字幕支持或多文件队列。
项目效果
从打开程序到视频在电视上播放,通常不超过 10 秒。选择文件后,点击目标设备名称,电视会自动弹出播放提示,确认后即可全屏观看。
播放过程中,电脑端的控制面板能实时同步状态,拖动进度条或调整音量都能即时生效。
即使是在 1080P 视频下,只要局域网带宽正常(百兆以上),基本无缓冲卡顿。对于家庭观影、会议演示或教学展示等场景,非常实用。
项目源码
项目已开源托管在 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技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!