6-10 October 2024
Concordia University Conference Centre
America/New_York timezone

Streamlining Video Presentation and Recording with GStreamer-Based Processing

7 Oct 2024, 12:05
30m
Room 1

Room 1

Speaker

Tomasz Mikołajczyk

Description

In this presentation, I will summarize a library I am developing for video presentation and recording applications that assists users in creating content for video presentations. A key component of this system is GStreamer, which plays an integral role in real-time video and audio processing.

Key Features:
The app streams media to Amazon ECS during recording for real-time GStreamer-based processing, offering the following features:

  • Conversion: Transforms video from webm format to HLS.
  • Thumbnails Generation: Automatically creates thumbnail images from the video stream.
  • Waveform Generation: Produces waveform visualizations to enhance the user experience.
  • Audio Transcription: Converts spoken audio into text for accessibility and indexing.
  • Notably, all of this processing is done 100% in memory, without utilizing the local filesystem.

Advanced Editing Capabilities:
Users can edit and enhance multiple recordings by:

  • Mixing recordings together,
  • Trimming and adding images or other visual elements,
  • Combining and editing them to form a final presentation.

This is accomplished using GStreamer Editing Services (GES), allowing users to create structured presentations composed of logical chapters, enhancing both functionality and narrative flow.

Technical Implementation:
GStreamer functionality is encapsulated in a C++ library, integrated with a thin C layer, and exposed to Go, providing users with an easy-to-use interface.

Challenges and Solutions:
During development, I encountered and reported several GStreamer-related issues, many of which have since been resolved. Additionally, the C++ library includes simple yet highly useful wrappers that streamline automatic resource management, further improving and simplifying the development.

Conclusion:
In this presentation, I will demonstrate GStreamer's powerful capabilities within a modern video presentation app, showcasing how automatic resource management can simplify development and enhance overall workflow efficiency.

Duration of the talk
Speaker bio I'm a software developer with 20 years of professional experience, having worked on projects in diverse domains such as networking, high availability systems, low-level microcontroller programming, fintech, automotive and computer vision. For the past 5 years, I have focused on audio and video processing, which I find particularly engaging. While I am most comfortable working in C++, I also enjoy integrating various technologies within a single project.

Primary author

Presentation Materials

There are no materials yet.
2024 Platinum Sponsor
Collabora
2024 Gold Sponsors
Arm
Google
Microsoft
NVIDIA
2024 Silver Sponsors
AMD
FEX-Emu
Igalia
Qualcomm
The Linux Foundation
2024 Bronze Sponsors
CodeWeavers
Khronos Group
Libre Computer