Streamlining Video Presentation and Recording with GStreamer-Based Processing
Action | Key |
---|---|
Play / Pause | K or space |
Mute / Unmute | M |
Toggle fullscreen mode | F |
Select next subtitles | C |
Select next audio track | A |
Toggle automatic slides maximization | V |
Seek 5s backward | left arrow |
Seek 5s forward | right arrow |
Seek 10s backward | shift + left arrow or J |
Seek 10s forward | shift + right arrow or L |
Seek 60s backward | control + left arrow |
Seek 60s forward | control + right arrow |
Seek 1 frame backward | alt + left arrow |
Seek 1 frame forward | alt + right arrow |
Decrease volume | shift + down arrow |
Increase volume | shift + up arrow |
Decrease playback rate | < |
Increase playback rate | > |
Seek to end | end |
Seek to beginning | beginning |
You can right click on slides to open the menu
Share this media
HLS video stream
You can use an external player to play this stream (like VLC).
HLS video stream
Subscribe to notifications
When subscribed to notifications, an email will be sent to you for all added annotations.
Your user account has no email address.
Information on this media
15 views
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.
Creation date:
Oct. 7, 2024
Speakers:
Tomasz Mikołajczyk
License:
CC BY-SA 3.0
Links:
Other media in the channel "GStreamer Conference 2024"
36 views, 36 this year, 3 this monthWindows Graphics Stack Improvements – Direct3D12November 8th, 2024
60 views, 60 this year, 2 this monthGStreamer and display clock synchronizationOctober 25th, 2024
34 views, 34 this yearGStreamer and VROctober 25th, 2024
21 views, 21 this year, 1 this monthHDR in GTKOctober 25th, 2024
16 views, 16 this yearlibrice: a sans-IO ICE networking libraryOctober 25th, 2024
57 views, 57 this year, 2 this monthHLS master playlist management made easyOctober 25th, 2024