什么视频编码器在Android设备上以最佳性能提供最佳性能?

时间:2016-12-25 03:53:54

标签: android video h.264 codec

我尝试确定最佳编码器或编码参数,以便尽可能在Android手机上播放高分辨率(质量)视频。我不太关心文件大小,它可以是"正确压缩"的大小的三倍。视频只要播放顺畅。默认情况下,所有编码器都以尽可能小的文件优化以获得最佳质量,但代价是解码视频所需的计算能力 - 我希望以文件大小为代价优化计算能力。

所以基本上我想知道如何以增加文件大小为代价来有效地减轻解码器的负担,以便视频播放时没有任何伪影或冻结。

有人可以推荐一种技术来实现这个目标吗?

澄清:我有一个非常高质量(1440p)的本地可用文件,我希望尽可能转换到尽可能多的可播放分辨率/质量而不关心文件大小(1080p +)。

谢谢。

1 个答案:

答案 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设备实现:    

   
        
  •      必须支持Main Profile Level 3.1和Baseline Profile。      
         支持ASO(任意切片订购),FMO(灵活宏块订购)     和RS(冗余切片)是可选的。     
  •     
  •      必须能够用SD解码视频(标准清晰度)     下表中列出的配置文件,并使用基准配置文件和     主要档案等级3.1(包括720p30)。     
  •     
  •      应该能够使用HD(高清晰度)配置文件解码视频     如下表所示。     
  •     
  •      此外,Android电视设备 -      
            
    •        必须支持High Profile Level 4.2和HD 1080p60解码配置文件。       
    •       
    •        必须能够解码具有两个HD配置文件的视频     在下表中,并使用Baseline Profile,Main进行编码     配置文件,或高级别4.2       
    •      
        
  •    

                    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设备。