吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 28629|回复: 199
收起左侧

[原创工具] 【开源】PC接受手机投影sh,可以选择下载投影资源的软件--12月13日源码开放0....

    [复制链接]
jimmyzang 发表于 2019-12-2 15:16
本帖最后由 jimmyzang 于 2019-12-13 12:20 编辑

12-13日:
更新:
主要是大家需求比较多,C#代码我又不太熟,干脆开放源码给大家下载,需要的自己改一下吧。 :) ,下载地址在文章最后。

BTW:
上传附件的目的主要是看一下多少人需要源码的,如果需要的人多了,百度文库下载那个帖子的源码我也放出来。


12-4日:
更新:
1:修复b站不能观看的问题,其实就是请求里面添加refer,但是因为是IP地址,所以我整了个配置文件,如果还不能看,就手动改一下配置文件。关闭软件重新打开就好了。@Thexxx,改好了,不过下载器你自己配置吧,找个支持http下载的可以配置refer的,我就不找了,嘿嘿。。。。
2:增加52pojie链接。
3:修改文件名称,原来的太随意了,修改为Dlna_media_player. 修改DLNA设备名称为Dlna_media_player。
4:   应要求给程序增加一个图标 @慕云轻
5: 本来想做下载列表的,看了看 太难了,毕竟刚学习C#两天。。。我把下载程序改成配置文件配置,这样大家可以定制下载程序。
6:开启DLNA按钮也换了个图标。好看一点。嘿嘿。。。。


配置文件解释,一般网站不需要除非访问时需要定制refer或者user agent。

配置文件简单解释:DlnaMediaplayer.exe.config ,打开是xml文件,文本编辑器编辑。
可以定制refer和user_agent 格式区分大小写:refer的value需要有红色字样。 agent不需要

<add key ="refer:http://124.14.12.189" value="Referer:https://www.xxxxxxxxx.com/xxxxxx/play/xxxxxx?spm_id_fro"/>
<add key ="user_agent:https://data.xxxx.xxxxx.com" value="NetType/3G"/>

需要修改下载器的,请改这个字段,修改完毕后,我的调用方式是   XXXX.exe  后面跟 下载url作为参数。
<add key ="downloadexe" value="N_m3u8DL-CLI.exe"/>

比如
notepad.exe   http://sqdownb.onlinedown.net/down/MetroStudio.rar.
下载器的refer或者user_agent需要自行配置。



已知问题:
1:b站会员视频不能投屏,原因是会员视频不支持投屏,可以发现设备,但是即使是试看3分钟的视频也不发送url给投影端,所以这个没办法。
2:win7可能不能播放,需要看看啥问题
===================================我是分割线=-==========================================     

先说需求部分,最近我遇到一个个人需求,手机上买jd会员的时候,送了个xxx的视频软件会员,但是手机看片屏幕太小了,于是想投影到机顶盒上去,可是郁闷的是,
机顶盒距离我家wifi太远,信号不好。于是想如何把这个可以在手机上看的视频搞到电脑上看,或者可以下载下来


    于是乎开始分析,首先手机和机顶盒之间是采用DLNA进行通信,我只要找到在PC上支持DLNA并且可以作为Media Renderer的视频软件就好了,可是找了几个比如mediaplayer(这个最傻,不会缓冲,每次都只能看几秒停几秒),
KODI(这个其实挺不错的,但是都是只能在电脑上看,不能下载下来看)。其实仔细想想,可以在PC上播放了,为啥不能顺便加个下载功能呢?


   手闲的痒,就顺便写个软件同时支持一下这两个功能,结果没想到一写就写的头大,想吐出来。。。。。不过总算是有个样子了。
其实也就是只要手机能播放的,并且支持投屏的,都应该用这个软件给拉下来,偷偷说一句,我用这个软件下载速度极快,基本上带宽可以跑满。。。

更新已知问题:
6:某站播放时需要加refer,但是url是IP地址,程序无法判断是需要添加refer的网站,需要配置文件?(to be done  )
7:加个列表方便导出。

   老规矩,先写已知问题:
1:开始DLNA按钮太丑,不说明基本上没人知道在哪儿,点击后没有任何提示。
2:下载路径无法配置
3:有时候会遇到无法连接的情况,这种情况我抓包看过,服务器返回的地址访问就是502错误,就算是加上refer , user agent也不行。 这个时候其他的投屏软件也无法接受手机端的投屏。所以优先级不是很高。

4:基本上遇到无法连接情况,大家把手机播放器和这个软件都关掉,过几分钟再试试看。
5:播放后的URL会被播放器记住,但是一段时候后,URL会失效,这时候再点是没用的。

    此软件将会调用N_m3u8DL-CLI 和FFmpeg运行,其中这两个exe必须放在和此软件相同目录。(反正就是压缩包直接解压就好了,找个英文路径解压安全点。)
软件绿色,无需安装,无广告插件,本来可以加52pojie首发的,实在是太累了,下个版本(如果有人要的话)再加吧。
软件压缩后20MB,主要是avcodec-58.dll 这个货是ffmpeg的库,里面是各种解码器,我自己的程序并不大。大家如果不放心,可以到ffmpeg网站上下载对应的dll替换。

   主要代码逻辑如下:

1:在PC端开启该软件,伪装成Media Renderer,往239.255.255.250发ddsp包,注册成为AVTransport。
2:在手机端启动xxx客户端,反正不局限于某客户端,只要支持TV投影即可。 点击投影按钮,进行DLNA查询。
3:发现AVTransport设备,手机端作为controller发协议查询设备能力,并且在SetAVTransportURI 命令中,发送m3u8信息。 也就是说其实不管在网页端如何加密,最后这里都会发送一个可用的m3u8的地址过来。
4:该软件得到m3u8信息后,请用户选择是播放还是下载。
5:播放采用的是ffmpeg解码器进行解码播放。
6:下载m3u8部分采用的是论坛里面【开源M3U8下载器】N_m3u8DL-CLI @我是你老大, (感谢共享这么好用的软件)因为这个解码器可以传递参数,还有界面,省的再写了。呵呵。

    其实总体思路并不难,这里记录一下遇到的坑:
1:为了保证Upnp的兼容性,基本上市面上的开源库都找了一遍,python的,java的,C++的,最后选用的是Platinum的开源库,接口比较丰富,而且兼容性较好,实际测试基本上开启后马上就可以被手机端识别到设备。
2:FFMpeg的集成,遇到很多很多兼容性的问题,.net framework 和.net core的冲突,sdl效率问题等等,真是郁闷至极,最后没办法,现学的C#,用的是Unosquare.FFME,这个库的好处是定制灵活,对外暴露的接口较多,集成方便,后续可以扩展。
3:m3u8下载部分,N_m3u8DL-CLI还是挺好用的,主要是可以有命令行参数,再次感谢一下。

  请务必阅读使用说明,

基本上运行界面如下图:
正常可以用于本地播放,如果想启用DLNA,也就是接受投屏功能,请点击下图红色部分按钮,点击后应该啥反应都没有就是啥反应都没有,你不放心可以再点一遍,其实后台起了个线程去注册AVTransport了。
界面1.jpg

然后开启您的手机,进入投屏界面,应该可以搜索到Platinum Media Renderer这个投屏设备,如果没有,检查PC防火墙等设置。(一般来说,能看到其他投影设备就应该能看到这个,除非防火墙挡住了)


界面5.jpg

点击投屏,正常情况下应该会出现这个界面。说明软件捕获到m3u8地址,这时需要尽快选择到底是播放还是下载,两者选一个。我用的是阻塞线程,如果超过3分钟以上,URL有可能失效

界面2.jpg 界面3.jpg 界面4.jpg

基于我写的软件一贯的难用的作风,这个软件的下载地址也是没有办法选择的,下载完毕也是没有提示的,
但是你可以看到那个下载的命令行窗口消失的时候,要么就是下载完毕,要么就是下载失败了。
下载后的软件要到此软件目录下面的Downloads 目录下面自己找。。。。

主要是写的太累了,实在是不想改了。用的人多了就再更新吧。

补充一下,C#.net 在win10下测试过,其他软件环境比如XP,WIn8没有测试过,编译选项是X86,应该可用,但不能保证。

地址留一下:

12月13日:源码下载:
WpfAppabc.rar (2.67 MB, 下载次数: 284)

版本0.0.2 (忘记改成本地路径了FFMPEG出错,release版本放了debug版本的dll,导致crush问题修复)
链接: https://pan.baidu.com/s/15BTe2AAQ_hd7Kghwwlxo2A 提取码: ufjm

版本0.0.1:
链接: https://pan.baidu.com/s/1yQsCZzcd7hsDvO31DdROSw 提取码: u981

免费评分

参与人数 47吾爱币 +52 热心值 +43 收起 理由
waithappy + 1 + 1 谢谢大佬~~感谢更新!
x517302248 + 1 热心回复!
as353758815 + 1 + 1 我很赞同!
北巷夏初 + 1 + 1 楼主厉害
haohao2019 + 1 + 1 谢谢@Thanks!
chen51234 + 1 + 1 热心回复!
lyqjqly + 1 + 1 用心讨论,共获提升!
Lighting + 1 已经处理,感谢您对吾爱破解论坛的支持!
zpwz + 1 + 1 真大神,支持
guangxin + 1 + 1 谢谢@Thanks!
混碗饭吃 + 1 + 1 热心回复!
jia275833553 + 1 谢谢@Thanks!
jackjdl + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
z小伟style + 1 + 1 谢谢@Thanks!我的小米投屏搜不到啊!MIUI11,win10
dagonlau + 1 谢谢@Thanks!
只是还很年轻 + 1 + 1 谢谢@Thanks!
hyk823 + 1 + 1 谢谢@Thanks!
xxdahai + 2 + 1 兄嘚,整体的窗口小一点啊,1280*720点不了按钮
libozi + 1 + 1 谢谢@Thanks!
五月夕风 + 1 + 1 热心回复!
无尽星空 + 1 + 1 谢谢@Thanks!
cqchen + 1 热心回复!
castik + 1 我很赞同!
444065541 + 1 + 1 希望整一个苹果手机的
xindong8 + 1 + 1 NB非常好用的投屏软件
TheXXX + 1 + 1 谢谢@Thanks!
caszx + 1 非常好用,谢谢楼主分享
妖刀 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Zchon + 1 + 1 谢谢@Thanks!
时光里的一缕风 + 1 热心回复!
dry + 2 + 1 谢谢@Thanks!
风中漫步 + 1 + 1 谢谢@Thanks!
gqdsc + 1 + 1 谢谢@Thanks!
zhuangyu + 1 + 1 用心讨论,共获提升!
aa849397558 + 1 + 1 热心回复!
慕云轻 + 1 + 1 加油,期待更新版本
stevendon + 1 + 1 谢谢@Thanks!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
新人_新手 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Rbtl + 1 + 1 老铁!有技术就是为所欲为!
轻狂迷你书生 + 1 太厉害了
FleTime + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
newgjf + 1 + 1 我用了,效果很棒!!!
漁滒 + 1 + 1 我很赞同!
pizazzboy + 1 + 1 楼主厉害了。
逍遥一仙 + 3 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| jimmyzang 发表于 2019-12-2 16:46
本帖最后由 jimmyzang 于 2019-12-2 17:32 编辑
山城子 发表于 2019-12-2 16:29
scrcpy就能实现手机投屏到电脑啊,使用超简单,还可以在电脑端用键盘、鼠标操作手机,可以录屏,有线、无线 ...

还是统一回复一下吧,可能我标题起的有些误导,这个是实现的dlna的投屏。和其他投屏方式不同的是。(以下是个人理解,如有误请指正)
miracast当然可以在手机和电脑端同时播放,电脑的显示是由手机端发送过去,手机相当于server。媒体流由服务端完成解码并重新编码为H.264传输到接收端,接收端(PC)只需要对H.264解码即可。但带了的问题是:如果手机端关闭了,电脑端也同样不会显示,
DLNA的投屏,服务端(DMS,Digital Media Server)基于文件的方式提供服务,文件解码由接收端完成(DMR,Digital Media Render),对于多媒体而言,手机就起到一个遥控器的作用,开始播放后,PC直接从外部的server得到数据,这样不需要手机再做中转。同样也是为啥需要FFMPEG和他那好大的那个解码器库文件。

所以miracast应该是没有方法得到视频播放的m3u8的。DLNA可以再投屏成功后关闭手机,机顶盒或者PC也可以继续观看。同样的miracast也就是没有办法下载视频的原始文件,pc端得到的应该是重新编码的H264流。

补充一下:
win10的无线投屏要求必须PC带无线网卡,显卡也有要求,DLNA就没有这么多限制条件啦。

繁华如画 发表于 2019-12-2 15:17
yidelong1988 发表于 2019-12-2 15:21
谢谢楼主分享,手机投电脑,以后可以用电脑录手游了
木丁哂 发表于 2019-12-2 15:35
win10专业版自带手机投影功能,其实也挺好用的
xuanqi521 发表于 2019-12-2 15:42
楼主DIY的能力就是强
Loki~ 发表于 2019-12-2 15:42
感谢楼主的分享,晚上回去一定要试一下
slssl 发表于 2019-12-2 15:44
支持原创。
逍遥一仙 发表于 2019-12-2 15:44
话说,不如加个列表呗?
血情 发表于 2019-12-2 15:57
这个很厉害,楼主牛逼
 楼主| jimmyzang 发表于 2019-12-2 16:00
逍遥一仙 发表于 2019-12-2 15:44
话说,不如加个列表呗?

加个啥样的列表,不太明白。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表