背景:
从最终用户的角度来看,我非常熟悉 DLNA 服务器(至少在 Linux 上)。我玩过PS3 Media Server、TVersity、Serviio、Plex、minidlna和mediatomb。所有似乎基本上都为 DLNA 兼容(?)客户端提供了一个 UPNP 可发现文件系统:
- 我研究了 PS3 Media Server 和 Serviio 如何使用 FFMpeg 和/或 Mencoder 进行(几乎)即时转码。
- 根据Michael Fötsch 的博客,我已经研究了如何在视频容器格式中捏造细节以通过 DLNA 实现“实时”流式传输。
- 我有各种 IPTV 频道在 Serviio 上工作的流媒体,最近基于 rtmpdump 对 librtmp 进行了改进(这里librtmp 做了很多工作来验证和下载 rt[ms]p(e) 流,而FFMpeg 进行转码;我是不确定通过 DLNA 进行的直播部分是否与上述博客的工作方式相同。
我还使用了一个查看不同的 Android 应用程序,这些应用程序允许您将一些众所周知的流(例如:Youtube、Dailymotion 等)播放到兼容的电视(例如:PlayTo Roku/Chromecast/DLNA TV、Play To Universal和Twonky Beam)。
最后,我还在我的三星 SmartTV 上使用了特定的应用程序(即:Youtube),它允许将电视与某些网站“配对”,这样您就可以在没有电视的情况下将一些视频点播到电视(即中间播放)在相关的应用程序中(在这种情况下为 Youtube)。
问题:
有人可以帮助澄清“播放电视”和“配对”案例中发生了什么吗?这些都是 DLNA 的用途/实现吗?如果不是,这些应用程序实际上在做什么?
我应该解释一下,我的最终目标是编写一些在我的 Linux PC 上运行的东西,它将任意在线视频流按需传输到我的电视上。就像是:
- 用户通过本地子网上的 HTTP 代理浏览到平板电脑/智能手机上的任何站点。
- 代理重新编写 HTML,使已知或熟悉的结构化流媒体站点具有“播放到电视”链接,单击该链接时会将相关信息发送到本地网络服务器。
- 本地网络服务器组织开始下载流,并通过 FFMpeg 进行适当的转码。
- <在此处插入魔法>播放到电视。
我想我了解如何使用可用工具(并参考 Serviio 代码)执行步骤 1-3,但我什至不知道从哪里开始步骤 4,因为我不知道那些 Android/TV 应用程序做他们所做的:-)。
任何澄清概念的帮助,或指向文档的指针,或相关的源代码都将不胜感激。