DiscombobulatedDrag / HWEncoderExperiments

Deprecated ( See https://github.com/Kickflip/kickflip-android-sdk for my current work). Experiments with Android 4.3's MediaCodec and MediaMuxer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HWEncoderExperiments

Herein lies experiments with Android 4.3's MediaCodec and MediaMuxer APIs.

The master branch is concerned with simultaneously producing a single high quality .mp4 as well as gapless 5 second chunk mp4s. The end goal is to allow an Android device to act as an HLS / MPEG-DASH server.

The audioonly branch shows a barebones example encoding AAC audio with Android's AudioRecord class.

Output

Output is stored in '/sdcard/HWEncodingExperiments' in or internal storage if /sdcard isn't available.

Output location is modified via FileUtils.OUTPUT_DIR and FileUtils.createTempFileInRootAppStorage.

Note on ColorFormats

This example doesn't yet intelligenty check for available color formats. If you experience a crash on MediaCodec.configure, try changing the appropriate part of ChunkedAvcEncoder.prepare():

private void prepare() {
…
  videoFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_TI_FormatYUV420PackedSemiPlanar);
  // On devices without a TI SOC, try:
  // COLOR_FormatYUV420PackedSemiPlanar
…
}

About

Deprecated ( See https://github.com/Kickflip/kickflip-android-sdk for my current work). Experiments with Android 4.3's MediaCodec and MediaMuxer


Languages

Language:Java 89.7%Language:Shell 9.6%Language:Groovy 0.7%