V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
liuser666
V2EX  ›  程序员

手机无线投屏的原理是什么?为什么电脑不行?

  •  
  •   liuser666 · 2020-06-27 10:32:32 +08:00 · 9167 次点击
    这是一个创建于 1645 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在使用手机无线投屏的时候发现并非屏幕镜像。

    好像是手机发送了一个视频的下载地址给电视就完事了。

    而电脑上的投屏方案好像就是单纯的屏幕镜像,包括乐播投屏。

    有没有那种发视频到电视的方案呢?

    比方说我在电脑上看 B 站,觉得电脑屏幕不够打,然后我就可以类似手机哪有一键把视频投到电视上。

    按说应该好实现的吧?我回头研究一下投屏的协议。

    44 条回复    2020-10-23 23:40:12 +08:00
    natsji
        1
    natsji  
       2020-06-27 10:38:45 +08:00 via Android   ❤️ 2
    用 chromecast 啊,炒鸡方便
    liuser666
        2
    liuser666  
    OP
       2020-06-27 10:40:45 +08:00
    @natsji 虽然不太符合我的需求,但是好像看到了个好玩的东西哈哈哈
    lithiumii
        3
    lithiumii  
       2020-06-27 10:41:19 +08:00 via Android
    WIN10 好像自带一个无线屏幕功能?这个是投屏吗?
    hongfengkt
        4
    hongfengkt  
       2020-06-27 10:50:03 +08:00
    Mac 可以投
    okjb
        5
    okjb  
       2020-06-27 10:52:05 +08:00 via Android
    @lithiumii 自带投屏我用起来非常玄幻的,公司网络偶尔能投屏,有时候不能,家里的也是😂自带的用起来有延迟,不好用
    olaloong
        6
    olaloong  
       2020-06-27 10:54:25 +08:00 via Android
    我记得很久之前腾讯视频 pc 客户端是有 dlna 的,后来好像没了
    kop1989
        7
    kop1989  
       2020-06-27 11:01:19 +08:00
    关键是因为手机和电视之间用的都是自家 app,可以通过传参、加密校验来实现信息互通。
    pc 一般看都是网站。
    你不能指望一个电视 app 能直接响应明文吧?响应明文的话怎么鉴权?
    乐播投屏这种第三方的应该就是破解了各个视频媒体 app 的传参加密。实现直接播放源。
    liuser666
        8
    liuser666  
    OP
       2020-06-27 11:09:03 +08:00   ❤️ 1
    @kop1989 应该是用的 DLNA 协议
    tfykimi
        9
    tfykimi  
       2020-06-27 11:11:22 +08:00
    如果是本地视频,可以使用 windows 自带的 dlan 功能,缺点就是码率过大的话,很容易出现中断情况,当时搞家庭影院的时候研究过,最后还是回到了 kodi 、smb 协议的老路子上。不过用 dlan 看出去玩的照片很爽。 如果是网络视频,没有什么好的解决办法,貌似 pc 上的协议都是通过投屏来搞定,win10 自带那个投屏的功能,试过几次,开会的时候看个 ppt 什么的还可以,看视频延迟太高,而且很容易出现连不上或者中断的情况,
    Semidio
        10
    Semidio  
       2020-06-27 11:11:49 +08:00
    本地视频的话,右键——播放到设备
    在线视频的话就需要浏览器或者其他第三方软件支持了
    tfykimi
        11
    tfykimi  
       2020-06-27 11:16:28 +08:00
    @tfykimi 。。dlna 协议,发出去发现敲错了。
    CoCoMcRee
        12
    CoCoMcRee  
       2020-06-27 11:30:51 +08:00   ❤️ 7
    我是 MRDLNA 这个库的作者,对投屏稍微有些了解.

    DLNA 协议.协议中定义了,包括播放设备,数据源,控制器等多个设备.

    常见的 app 视频投屏,先在局域网中发广播搜索播放设备,比如搜到电视.
    开始投屏时,手机作为控制设备,电视作为播放设备,告诉电视从数据源处开始接收数据.
    这是投在线播放的视频.

    如果是投本地视频的话,数据源就是手机本身.

    大概就是这个样子.
    以上是我的一些拙见.
    whwq2012
        13
    whwq2012  
       2020-06-27 11:37:02 +08:00   ❤️ 2
    投屏现在主要有三种,DLAN,Miracast,AirPlay 。看你的需求,后两者都是支持屏幕镜像的,DLAN 只支持文件流。
    Miracast 主要用于 Android 和 Windows 的投屏,AiryPlay 仅仅支持苹果设备间的投屏,DLAN 的通用性最强。
    看你的需求应该是想实现手机到电脑只投视频,那可以在电脑安装一个 DLAN server 的软件,例如楼上已经提过的 KODI 。如果是想投实时画面,那就可以在 WIndows 或者 Mac 上下载 AirServer,这个既可以让苹果设备投屏,也可以让安装了客户端的安卓投屏。如果是安卓手机配 windows 电脑,还可以用 Dell mobile connect,也可以实时镜像画面。

    我以上的说的都是无线的方案,有线的那就更多了。。。
    natsji
        14
    natsji  
       2020-06-27 11:43:06 +08:00 via Android
    @liuser666 买个小米盒子国际版,就可以直接从 Chrome 投屏网页视频了
    GDC
        15
    GDC  
       2020-06-27 12:07:44 +08:00 via iPhone   ❤️ 2
    @kop1989 张口就来还打了一大段……
    liuser666
        16
    liuser666  
    OP
       2020-06-27 12:15:13 +08:00
    @CoCoMcRee 所以说网页投电影应该可行。
    liuser666
        17
    liuser666  
    OP
       2020-06-27 12:16:46 +08:00
    @whwq2012 我的需求是把电脑上的网页视频投到电视上...
    liuser666
        18
    liuser666  
    OP
       2020-06-27 12:18:27 +08:00
    @natsji 走的什么协议?我的 chrome 也有投屏到设备的选项但是一直搜索不到设备,哭了!
    airqj
        19
    airqj  
       2020-06-27 12:25:46 +08:00 via Android   ❤️ 1
    如果是在局域网的话投屏其实很简单 但是我一下子想不起来了。。。。
    PS:两年前给人做了个路由器投屏的功能,结果融不到资不愿意给钱了 正在打官司。。
    mgrddsj
        20
    mgrddsj  
       2020-06-27 12:32:07 +08:00 via Android
    @liuser666 #18 Chrome 里面的投屏是 Chromecast, 专门为投网页和投视频有优化,可以买个 Chromecast 接收器来用。
    JerryCha
        21
    JerryCha  
       2020-06-27 12:38:14 +08:00
    because it's mobile age
    because nobody cares desktop anymore
    mxalbert1996
        22
    mxalbert1996  
       2020-06-27 13:19:35 +08:00 via Android
    @whwq2012 先把 DLNA 写对了啊。。。另外国外还有一个主流是 Google Cast 。
    joesonw
        23
    joesonw  
       2020-06-27 13:49:33 +08:00
    airplay apple 全家桶都可以投屏啊.
    chizuo
        24
    chizuo  
       2020-06-27 14:24:59 +08:00
    @joesonw 看题。不是那种“屏幕镜像”,需要“电视直接播放源视频地址”
    Y29tL2gwd2Fy
        25
    Y29tL2gwd2Fy  
       2020-06-27 14:37:36 +08:00 via iPhone
    @kop1989 不懂装懂
    expy
        26
    expy  
       2020-06-27 14:38:39 +08:00
    DLNA/UPnP 了解下。
    直接点说,电脑不行是因为厂商的软件没做这个功能。
    可以自己拿到直链地址后发送给电视上的 Media Renderer 。
    expy
        27
    expy  
       2020-06-27 14:40:59 +08:00
    https://github.com/cherezov/dlnap
    这里有现成的轮子。
    natsji
        28
    natsji  
       2020-06-27 16:39:15 +08:00 via Android
    @liuser666 chromecast 就是直接把网页中的视频源推到电视上播放,流量全从电视走。谷歌的 chromecast 接收器还有 android tv 系统的盒子都支持。国产的电视盒子都是普通 android 系统不支持。
    a62527776a
        29
    a62527776a  
       2020-06-27 16:47:20 +08:00
    乐播是要和各家对接的
    janus77
        30
    janus77  
       2020-06-27 17:25:10 +08:00 via iPhone
    为啥不用手机直接投电视……这样想你属于伪需求吧
    GrayXu
        31
    GrayXu  
       2020-06-27 17:27:24 +08:00   ❤️ 1
    @kop1989 完全错误,建议学习下 DLNA
    weak
        32
    weak  
       2020-06-27 17:30:57 +08:00 via Android
    Android 自带截屏 API 。往电脑发送一帧帧的图片。就形成了图像
    succlz123
        33
    succlz123  
       2020-06-27 20:33:02 +08:00
    https://github.com/succlz123/DLNA-Dart 稍微改改跑在 PC 也没毛病
    Nadao
        34
    Nadao  
       2020-06-27 22:42:08 +08:00
    PC 有无线传屏的硬件实现。
    但无线传屏看高清视频效果不好,明显有丢帧。 打游戏的话延时也好明显,所以除了办公基本没什么用。
    lithbitren
        35
    lithbitren  
       2020-06-27 22:45:19 +08:00
    手机各种投屏基本都是把源推到电视,推完以后手机可以关掉 app 都可以继续播
    systemcall
        36
    systemcall  
       2020-06-27 22:51:52 +08:00
    Chrome 和 Windows 原生的视频控件都是支持的,软件不适配而已
    为什么开发者不适配,这个又要谈到产品经理,产品经理不想要这个功能
    Chrome cast 和 DLNA 都可以支持,Windows 自带的应该是 DLNA,没记错的话 Miracast 也支持,而且 Miracast 可以透传视频到显示设备上,VLC 是支持的,但是国产软件似乎不行
    JerryCha
        37
    JerryCha  
       2020-06-28 00:29:34 +08:00
    @janus77 考虑一下国内还有不少用户是用电脑上网冲浪的,尽管他们平常可能用着顶配 iPhone 11 Pro Max 。
    joesonw
        38
    joesonw  
       2020-06-28 12:56:32 +08:00
    @chizuo airplay 两种都可以啊. 只是 app 端需要支持. 例如 tx 视频这种垃圾 app, 热门电影都不让投屏, 要买电视大会员.
    liuser666
        39
    liuser666  
    OP
       2020-06-28 12:58:04 +08:00
    @janus77 不支持怎么回事,我现在很讨厌使用手机...一般在电脑上操作的时候再切到手机就觉得很难受...哈哈哈
    joesonw
        40
    joesonw  
       2020-06-28 12:59:41 +08:00
    @chizuo desktop 的我知道的至少有 QuickTime 和 chrome
    liuser666
        41
    liuser666  
    OP
       2020-06-28 13:01:21 +08:00
    @lithbitren 对,所以我觉得电脑把源推到电视理论上应该也可以实现,来问问有没有现成的工具。
    liuser666
        42
    liuser666  
    OP
       2020-06-28 13:04:26 +08:00
    @JerryCha sad news
    cyru1s
        43
    cyru1s  
       2020-06-28 14:57:06 +08:00
    其实你要想一个问题,发链接让电视打开可能会遇到:
    * 电视没有装某科学网络连接工具,导致某些网站电视打不开;
    * 电视没有买某些视频网站的会员,导致某些视频需要额外付费。
    前者基本没有办法解决,后者在有些电视平台中是通过伪装为安卓手机来实现的,所以可以投屏看一些没有开电视会员的视频~
    Liqianyu
        44
    Liqianyu  
       2020-10-23 23:40:12 +08:00
    Chrome vGet Cast
    https://chrome.google.com/webstore/detail/ekdjofnchpbfmnfbedalmbdlhbabiapi
    这个可以抓取出视频流然后投屏。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1812 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:22 · PVG 00:22 · LAX 08:22 · JFK 11:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.