我尝试确定最佳编码器或编码参数,以便尽可能在Android手机上播放高分辨率(质量)视频。我不太关心文件大小,它可以是"正确压缩"的大小的三倍。视频只要播放顺畅。默认情况下,所有编码器都以尽可能小的文件优化以获得最佳质量,但代价是解码视频所需的计算能力 - 我希望以文件大小为代价优化计算能力。
所以基本上我想知道如何以增加文件大小为代价来有效地减轻解码器的负担,以便视频播放时没有任何伪影或冻结。
有人可以推荐一种技术来实现这个目标吗?
澄清:我有一个非常高质量(1440p)的本地可用文件,我希望尽可能转换到尽可能多的可播放分辨率/质量而不关心文件大小(1080p +)。
谢谢。
答案 0 :(得分:5)
对于视频编码,一般建议使用带有基线配置文件的H.264以获得广泛的兼容性。通常有多种参数用于优化视频内容(动画与静态讲座与动作/体育),但通常可以解析为比特率。
任何拥有Google Play的设备都必须符合Android兼容性定义文档,其中列出了各种尺寸视频的预期帧速率和比特率:
http://source.android.com/compatibility/7.0/android-7.0-cdd.html#5_3_4_h_264
使用H.264解码器的Android设备实现:
SD (Low quality) SD (High quality) HD 720p HD 1080p
Video resolution 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 px
Video frame rate 30 fps 30 fps 30 fps 30 fps
Video bitrate 800 Kbps 2 Mbps 8 Mbps 20 Mbps
虽然Android对SD视频有必须要求,但
关于电源使用 - 硬件解码在高端设备上比较常见 - 屏幕仍然是播放视频中最耗电的部分,因此任何关于“压缩”的想法应该是关于哪些设置将提供最多视觉上可接受的内容,同时尽可能小。鉴于内容的变化,“正确”的设置通常需要一些实验。
此外,如果您要交付设备,您应该允许客户端选择合理的分辨率/质量 - 即没有理由将640p文件传送到640x480设备。