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

Nic*_*man 2 video android codec h.264

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

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

谁能推荐一种技术来实现这一目标?

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

谢谢.

Mor*_*ang 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配置文件的视频,如下表所示,并使用基线配置文件,主配置文件或高配置文件级别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
Run Code Online (Sandbox Code Playgroud)

虽然Android 必须要求SD视频,但HD 应该是高端设备实现的.

关于电源使用 - 硬件解码在高端设备上比较常见 - 屏幕仍然是播放视频中最耗电的部分,因此任何有关"压缩"的想法应该是关于哪些设置将提供最直观的内容虽然尽可能小.鉴于内容的变化,"正确"的设置通常需要一些实验.

此外,如果您要交付设备,您应该允许客户端选择合理的分辨率/质量 - 即没有理由将640p文件传送到640x480设备.