本人不是技术背景的,体验过很多内容聚合类的 app,如“即刻”、“豌豆荚一览”等,但是这些内容的形式都属于非实时的。
请问,技术上可否实现自动且实时的拉取其它人家的直播 app 里的内容,并在自己的产品框架下去播放(不交互)?不通过谈判合作,自己通过技术是否可以实现?
另外,想知道,这个问题的答案对于手机 app 或者 web 是否有区别。
谢谢,希望我的描述能让勉强各位听明白。
回复内容:
这实际上就是一种盗播。这种做法的核心特点是:自己不花流量费,用户观看视频时直接请求目标平台的服务器——这也是为什么叫“盗播”而不是“转播”的原因,你是用别人的钱给自己发家致富,而“转播”则是自己掏流量费,只是内容来自外部(当然转播也应当合法才行)。所以很容易理解如果第三方平台发现你这么做他们会有多愤怒。
道德方面不评价,单从技术上来说是可行的,但也存在一些限制。
可行的原因是:
- 目前大部分直播平台的技术底层使用的都是 RTMP(Real-Time Messaging Protocol) 协议来实现直播流的发送(主播方)与接收(观众方)
- 为了在移动端 Web 环境下实现直播观看,这些直播平台还会额外使用 HLS(HTTP Live Streaming)协议
- 上述两种协议,都是开放的。RTMP 协议源自 Adobe 公司,技术规范参见:Real-Time Messaging Protocol (RTMP) specification 。而 HLS 协议则源自 Apple 公司,技术规范参见:https://developer.apple.com/streaming/
更进一步来说一个直播系统核心的构成要件主要是三部分:
- 采集——主播使用 OBS 之类的软件来录制视频,并能够将数据发向服务器
- 转播——服务器使用 SRS/Red5 之类的软件实现接收采集端发来的数据并转发给回放端(观众)
- 回放——实质上就是指播放器,通常嵌入在 Web 页面或 App 里,观众通过它们来观看
对于盗播方,只需要实现回放功能即可。而回放怎么实现呢?其实你很容易就可以找到一个开源的播放器,支持 RTMP 和 HLS 协议。那么剩下的最后一步,就是抓取到那些直播平台的节目的播放地址了。注意这不是指直播节目的网页地址,而是指节目底层协议规定的地址,比如 RTMP 协议规定每个节目都有一个 rtmp:// 开头的地址,而 HLS 则是每个节目都有一个 http:// 开头的地址(HLS 实际上是基于 HTTP 协议的,因此其节目地址就是一个普通的网址)
是的,只要你能抓取到那些直播节目的视频流地址,再找一个播放器,就能直接播放了。这种方案基本能够盗播国内绝大多数平台的视频资源。
但也有少数平台做了防范,基本上有几类防范手法:
- 不使用 RTMP 和 HLS 而是基于自研的未公开协议,这大大提高了盗播难度(虽然这些平台原本并不是要防盗播,而是为了实现 P2P、低延迟等)
- 通过技术手段阻挠你获得直播视频的流地址(有一定效果,但也存在很多疏漏)
- 通过分析请求方是从哪个平台发起请求的,判断是否盗播(类似 HTTP 协议的 referer 防盗链机制,可以阻断低水平盗播)
- 通过检查登陆令牌的方式阻止盗播(对于许多登录才能看的移动端直播 APP 来说这可以说是防盗播的杀手锏,但是对于斗鱼熊猫之类不需要登录就能看的平台来说,这种效果不佳)
技术方面大致的情况就是这样。 抖个机灵……
嵌入一个 指定直播的IFRAME页面 即可
安全可靠无公害…… 理论可以 实际很难
你见过qq第三方客户端有吗 或者有了活得久的没 市场上已经有此类app了

PHPSession失效的原因包括配置错误、Cookie问题和Session过期。1.配置错误:检查并设置正确的session.save_path。2.Cookie问题:确保Cookie设置正确。3.Session过期:调整session.gc_maxlifetime值以延长会话时间。

在PHP中调试会话问题的方法包括:1.检查会话是否正确启动;2.验证会话ID的传递;3.检查会话数据的存储和读取;4.查看服务器配置。通过输出会话ID和数据、查看会话文件内容等方法,可以有效诊断和解决会话相关的问题。

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

在PHP中配置会话生命周期可以通过设置session.gc_maxlifetime和session.cookie_lifetime来实现。1)session.gc_maxlifetime控制服务器端会话数据的存活时间,2)session.cookie_lifetime控制客户端cookie的生命周期,设置为0时cookie在浏览器关闭时过期。

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。