gpt4 book ai didi

android - 如何在 Exoplayer 中顺序播放视频 block

转载 作者:行者123 更新时间:2023-11-29 01:19:50 27 4
gpt4 key购买 nike

我正在尝试开发一个 Android 应用程序来读取来自服务器或拥有视频的其他对等方的视频。对于这个用例,我必须将我的视频分成更小的部分以优化传输时间,并且每个部分都可以由中央服务器或另一个对等方提供。

我想知道 exoplayer 是否能够不间断地读取一系列视频 fragment ?
我可以在拆分过程中自由地做任何我想做的事,例如使用 linux 命令 split 分割视频。

最佳答案

大多数自适应比特率流媒体格式的工作方式与您的描述类似 - 它们将视频分成多个 block ,视频播放器一次请求一个。自适应速率流协议(protocol)的例子有 HLS、MPEG-DASH、SmoothStreaming。

可以将下一个“ block ”视频的 url 路由到“中央”服务器,该服务器可以将请求代理到另一个“对等”,如果这能满足您的需要的话。

值得注意的是,许多视频都是通过 CDN 传送的,这可能会干扰您想要的方法(或者实际上可能符合您的要求,具体取决于您的基本要求),因此您可能还想检查一下。

更新

假设您的意思是一些 block 将来自服务器,一些 block 来自网络上的对等设备,那么上述服务器代理方法将不起作用。

您可以执行此操作的一种方法是将所有 block 从最适合每个 block 的任何来源传送到设备,然后根据您的需要在设备上将它们放在一起,并将结果从“本地主机”流式传输到您的设备上设备到播放器。

这听起来像是一个巨大的开销并且永远不会起作用,但我相信它实际上是一些应用程序中用于从一种流媒体格式转换为另一种流媒体格式的技术(无法提供示例 - 抱歉......)。

Android 上“本地主机”服务器的一个示例可能对您有所帮助:

另一种方法是,如果您要在设备的网页内使用 HTML5,则可以使用媒体源扩展机制从不同的源加载视频 block ,然后再将它们传递给播放器。此时这确实需要 Chrome 而不是标准的 Android 浏览器,因为后者在撰写本文时不支持 MSE 扩展。

在所有这些方法中,您显然需要确保提前加载足够的时间以保持视频管道和缓冲区满,以避免暂停。

关于android - 如何在 Exoplayer 中顺序播放视频 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37527276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com