Skip to content

Swistusmen/Space-Seal

Repository files navigation

Space Seal

About

Application created as a part of my engineering project. It let's user to record not only a video, but also space orientation for every frame, transcode selected video into .mkv and even AV1 (both not supported by android framework). Nextly video may be streammed using HLS or RTSP protocol


Second part of engineer work (desktop server): https://github.com/Swistusmen/gCosm

Tech Stack


Java, Kotlin
C
GStreamer
ffmpeg

Functionalities

Main

Recording Activity


-Let member record a video- frame rate is set to 30. Data are save in External video storege

-Switcher on, makes app save position coordinates. Data are collected from sensors at the same time as frame. Data are saved as .txt file, with the same name and location as recordered video

Transcoding Activity


-Let member to select video- also not recorded by this app

-Let member to change container files .mp4 <-> .mkv

-Let member to change video formats .h264 <-> .av1

-After operation ends, application informs member whether it ended successfully or not, and time which it took

-New video has the same name as the origin, what may cause troubles

Streamming Activity


-Let member to select video to stream

-Let member to select stream protocol and video format. For HLS app demand external HTTP server (you can easily download it from google play store

Technical notes


HLS demand external http server
To build an app yourself, I recommend you to follow official Gstreamer documentation: https://gstreamer.freedesktop.org/documentation/installing/for-android-development.html?gi-language=c

Performance


Application has been tested on Xiaomi Mi A2 with android 10. Transcoding video (3 seconds, 30 fps) from MP4(H264, AAC) into MKV(AV1, AAC) took 6 minutes. Purpose of this app is to test oportunities to develop applications with a support of AV1. What is interesting however, is that plyaing such a video was not a problem. Conclusion is,you an easily watch streams in AV1, but live streamming is rather hard