H.263
MPEG-4 (.mp4)
H.264 AVC
See
section 5.2
and
5.3
for
details
3GPP (.3gp)
MPEG-4 (.mp4)
MPEG-2 TS (.ts, AAC audio only, not seekable,
Android 3.0+)
H.265 HEVC
See
section 5.3
for details
MPEG-4 (.mp4)
MPEG-2
Main Profile
MPEG2-TS
MPEG-4 SP
3GPP (.3gp)
VP8
See
section 5.2
and
5.3
for
details
WebM (.webm)
Matroska (.mkv)
VP9
See
section 5.3
for details
WebM (.webm)
Matroska (.mkv)
5.2. Video Encoding
If device implementations support any video encoder and make it available to third-party apps, they:
SHOULD NOT be, over two sliding windows, more than ~15% over the bitrate between
intraframe (I-frame) intervals.
SHOULD NOT be more than ~100% over the bitrate over a sliding window of 1 second.
If device implementations include an embedded screen display with the diagonal length of at least
2.5 inches or include a video output port or declare the support of a camera via the
android.hardware.camera.any
feature flag, they:
[C-1-1] MUST include the support of at least one of the VP8 or H.264 video encoders, and
make it available for third-party applications.
SHOULD support both VP8 and H.264 video encoders, and make it available for third-
party applications.
If device implementations support any of the H.264, VP8, VP9 or HEVC video encoders and make it
available to third-party applications, they:
[C-2-1] MUST support dynamically configurable bitrates.
SHOULD support variable frame rates, where video encoder SHOULD determine
instantaneous frame duration based on the timestamps of input buffers, and allocate its
bit bucket based on that frame duration.
If device implementations support the MPEG-4 SP video encoder and make it available to third-party
apps, they:
SHOULD support dynamically configurable bitrates for the supported encoder.
5.2.1. H.263
If device implementations support H.263 encoders and make it available to third-party apps, they:
Page 57 of 132