PC接受手机投影DlnaMediaplayer是一款在电脑端接收手机投影并且可以选择下载投影资源的软件,同时该软件将会调用N_m3u8DL-CLI和FFmpeg运行,两个exe必须放在和此软件相同目录!
配置说明
配置文件解释,一般网站不需要除非访问时需要定制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了。

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

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



基于我写的软件一贯的难用的作风,这个软件的下载地址也是没有办法选择的,下载完毕也是没有提示的,
但是你可以看到那个下载的命令行窗口消失的时候,要么就是下载完毕,要么就是下载失败了。
下载后的软件要到此软件目录下面的Downloads 目录下面自己找。。。。
主要是写的太累了,实在是不想改了。用的人多了就再更新吧。
补充一下,C#.net 在win10下测试过,其他软件环境比如XP,WIn8没有测试过,编译选项是X86,应该可用,但不能保证。
更新说明
1:修复b站不能观看的问题,其实就是请求里面添加refer,但是因为是IP地址,所以我整了个配置文件,如果还不能看,就手动改一下配置文件。关闭软件重新打开就好了。@Thexxx,改好了,不过下载器你自己配置吧,找个支持http下载的可以配置refer的,我就不找了,嘿嘿。。。。
2:增加52pojie链接。
3:修改文件名称,原来的太随意了,修改为Dlna_media_player.修改DLNA设备名称为Dlna_media_player。
4: 应要求给程序增加一个图标 @慕云轻,
5:本来想做下载列表的,看了看 太难了,毕竟刚学习C#两天。。。我把下载程序改成配置文件配置,这样大家可以定制下载程序。
6:开启DLNA按钮也换了个图标。好看一点。嘿嘿。





















大小: 25.5M

PP助手电脑版V5.9.7.4150 官方最新版
安卓模拟器(BlueStacks App Player)V4.150.8 官方多语中文版
海马苹果助手电脑版v5.2.6 官方最新版
夜神模拟器v7.0.3.7 官方最新版
苹果手机PP助手 iOSV5.9.7.4150 iphone版
腾讯手机管家2021电脑版5.8.2.5300 官方最新版
360手机助手电脑版v3.0.0.1124 官方正式版
天天模拟器v3.2.9 官方最新版
应用宝电脑版v5.8.3 官方版
recovery5.0.2.8 中文版
奇兔刷机v8.3.9.0 官方最新版
黑莓手机管理工具(BerryBox)v0.21 中文版
ActiveSync win7v6.1 中文安装版(64位)
百度手机助手v6.2.3.763 官方正式版
ios9.2.1完美越狱工具v1.0官方正式版
itunes插件包Bonjour.msi3.1.0.1官方最新版