57 lines
2.0 KiB
Markdown
57 lines
2.0 KiB
Markdown
# B-Frames Encoding App
|
|
|
|
This is a sample android application for encoding AVC/HEVC streams with B-Frames enabled. It uses MediaRecorder APIs to record B-frames enabled video from camera2 input and MediaCodec APIs to encode reference test vector using input surface.
|
|
|
|
This page describes how to get started with the Encoder App and how to run the tests for it.
|
|
|
|
|
|
# Getting Started
|
|
|
|
This app uses the Gradle build system as well as Soong Build System.
|
|
|
|
To build this project using Gradle build, use the "gradlew build" command or use "Import Project" in Android Studio.
|
|
|
|
To build the app using Soong Build System, run the following command:
|
|
```
|
|
mmm frameworks/av/media/tests/SampleVideoEncoder/
|
|
```
|
|
|
|
The apk is generated at the following location:
|
|
```
|
|
out\target\product\sargo\testcases\SampleVideoEncoder\arm64\SampleVideoEncoder.apk
|
|
```
|
|
|
|
Command to install the apk:
|
|
```
|
|
adb install SampleVideoEncoder.apk
|
|
```
|
|
|
|
Command to launch the app:
|
|
```
|
|
adb shell am start -n "com.android.media.samplevideoencoder/com.android.media.samplevideoencoder.MainActivity"
|
|
```
|
|
|
|
After installing the app, a TextureView showing camera preview is dispalyed on one third of the screen. It also features checkboxes to select either avc/hevc and hw/sw codecs. It also has an option to select either MediaRecorder APIs or MediaCodec, along with the 'Start' button to start/stop recording.
|
|
|
|
# Running Tests
|
|
|
|
The app also contains a test, which will test the MediaCodec APIs for encoding avc/hevc streams with B-frames enabled. This does not require us to use application UI.
|
|
|
|
## Running the tests using atest
|
|
Note that atest command will install the SampleVideoEncoder app on the device.
|
|
|
|
Command to run the tests:
|
|
```
|
|
atest SampleVideoEncoder
|
|
```
|
|
|
|
# Ouput
|
|
|
|
The muxed ouptput video is saved in the app data at:
|
|
```
|
|
/storage/emulated/0/Android/data/com.android.media.samplevideoencoder/files/
|
|
```
|
|
|
|
The total number of I-frames, P-frames and B-frames after encoding has been done using MediaCodec APIs are displayed on the screen.
|
|
The results of the tests can be obtained from the logcats of the test.
|