android - 在 Android 中从服务器获取时压缩视频

标签 android video android-videoview

我正在创建一个应用程序来获取存储在 FTP 服务器上的视频。我提供了使用以下链接中解释的 Android Videoview 在线播放视频的选项。我的问题是我希望用户选择他喜欢的质量来观看视频,即低质量或高质量,在选择低质量时,视频质量应该在播放视频时降低(如果是高清视频)。有没有人知道如何实现它。

使用 Android Videoview 观看视频的引用链接:http://www.androidbegin.com/tutorial/android-video-streaming-videoview-tutorial/

最佳答案

这听起来像是您在描述自适应比特率流式传输,其中客户端播放器根据连接速度从多个可用视频流中连续选择,以确保连续播放而不会停止缓冲。

这是可能的,因为源视频以多种比特率编码,并在每个流中分成相同时间大小的 block 。因此,玩家可以在任何时间点选择最合适的下一个 block ,具体取决于当时的带宽。

许多播放器,包括 YoutTube 的播放器,将允许用户覆盖它并从可用的比特率中手动选择他们想要的比特率(查看典型 YouTube 视频设置按钮下的质量设置)。

不幸的是,作为标准的 Android 并不擅长支持自适应比特率流。这些流传统上是 HLS,您可以看到许多用户发现的一些 HLS 问题:

目前似乎没有任何普遍接受的支持 HLS 的开源和免费 Android 视频播放器库 - 可能新兴的 MPEG-DASH(HLS 的一种行业标准版本)将成为主导和有更好的 Android 支持,尽管这可能仍然意味着流媒体提供商必须同时支持 HLS(适用于 iOS 设备)和适用于其他设备的 MPEG-DASH。

对于您的情况,如果您的服务器上只有两个单独的视频文件,您可能可以使用更简单的解决方案,只需要求用户预先选择一个,然后使用相应文件的 URL视频的持续时间。

关于android - 在 Android 中从服务器获取时压缩视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34508937/

相关文章:

android - 如何在android中的VideoView中一个一个地播放多个视频

android - Android是否支持HLS Adaptive Bitrate Streaming

java - .class 到 .dex 的转换

android - Jetpack 撰写 ui : How to create cardview?

android - 通知不显示

video - 相机的pts和dts跳转问题

android - 导航 View 的 itemTextColor 的颜色选择器

javascript - Angular HTML全屏视频自动播放不起作用

jquery - 当一个 VideoJS 实例启动时,如何暂停页面上所有正在播放的 VideoJS 实例?

android - 在 Android VideoView 上绘制叠加层(HUD)?