Skip to content

A Go-based WebRTC pipeline that receives AV1 video and returns H264 streams in real-time using Pion and GStreamer.

Notifications You must be signed in to change notification settings

arjunshajitech/webrtc-transcoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebRTC AV1 to H.264 Transcoding Project

Project Overview

This Go application implements a WebRTC-based video transcoding solution that:

  • Receives AV1 video streams from WebRTC clients
  • Transcodes the video to H.264 format using GStreamer
  • Returns the converted H.264 video stream back to the client

Prerequisites

Ensure your Linux system has GStreamer installed with the complete plugin collection:

  • GStreamer base plugins
  • GStreamer good plugins
  • GStreamer bad plugins
  • GStreamer ugly plugins

Troubleshooting Plugin Issues

Missing rtpav1depay Plugin Error

If you encounter the following error during application execution:

No such element or plugin 'rtpav1depay'

Follow these resolution steps:

1. Clone GStreamer Rust Plugins Repository

git clone https://github.com/GStreamer/gst-plugins-rs

2. Install cargo-c Tool

cargo install cargo-c

3. Build the RTP Plugin

cargo cbuild -p gst-plugin-rtp

4. Configure GST_PLUGIN_PATH Environment Variable

Add the build directory to your GST_PLUGIN_PATH:

export GST_PLUGIN_PATH="$PWD/target/x86_64-unknown-linux-gnu/debug:$GST_PLUGIN_PATH"

5. Verify Plugin Installation

Confirm the rtpav1depay plugin is properly installed and available:

gst-inspect-1.0 rtpav1depay

This command should display detailed information about the plugin if the installation was successful.

About

A Go-based WebRTC pipeline that receives AV1 video and returns H264 streams in real-time using Pion and GStreamer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published