This app shows information about all media streams inside a video or audio files.
For video streams the app shows:
- File format name
- Video codec name
- Frame size
- 1, 4 or 9 equidistant frames from the video stream
For audio streams:
- Audio codec name
- Bit rate
- Number of channels
- Channel layout
- Sample rate and format
For subtitle streams: title and language from stream’s metadata.
The main purpose is to show how to use the output of ffmpeg-android-maker.
Extensive description can be found in this article.
Have a look at the app yourself:
The codebase has a native part that glues FFmpeg libs to JVM part.
FFmpeg accepts 2 types of input: File paths and File Descriptors. File paths are better and allow the FFmpeg to use all the functionality it has. File Descriptors can be passed to FFmpeg via pipe protocol, but it has certain problems like inability to seek backward. That is why the number of frames shown when pipe protocol is used is limited to 4 only. File protocol doesn't have this problem.
App uses ACTION_GET_CONTENT to pick video/* files. So it can accept files from many different apps. The app ignores Storage Access Framework as many of standard and 3rd party apps do. Also app can handle ACTION_VIEW, when a video file is opened from another app.
App tries to recreate a raw file path from a Uri and pass it to FFmpeg. If it doesn't succeed, it falls back to File Descriptor way.
The app is simply structured: it uses the MVVM approach with components from AndroidX.
The rest is pretty standard Android-related burden.
And here is what it looks like:
Video file with video, audio and subtitle streams | Audio file |
---|---|
Handling ACTION_VIEW from Dropbox app | Picking file from Google Drive app |
---|---|
First, initialise the submodule:
git submodule update --init
Then you need to setup and execute the ffmpeg-android-maker's script. The command used to generate the Play Store build looks like this:
./ffmpeg-android-maker.sh --enable-libdav1d
More details can be found in ffmpeg-android-maker repository.
Just import in Android Studio and run.
WhatTheCodec app's source code is available under the MIT license. See the LICENSE.txt
file for more details.