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

Compress videos while fetching from server in Android

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

推荐 link 使用 Android Videoview 观看视频:http://www.androidbegin.com/tutorial/android-video-streaming-videoview-tutorial/

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

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

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

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

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

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