Skip to content

jiyeyuran/mediasoup-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mediasoup-Go

A Go library for mediasoup that enables WebRTC Selective Forwarding Unit (SFU) functionality without Node.js dependencies.

Note: v2.x.x tag only supports mediasoup v3.14.0 and above. For mediasoup v3.13.0 below, please use v1.x.x tag.

Features

  • Full mediasoup v3 API support in Go
  • Consistent API design with the original Node.js version
  • Uses Cmd.ExtraFiles for worker communication (not compatible with Windows)
  • Supports multi-core processing via PipeTransport

Prerequisites

  • Download the prebuilt mediasoup worker from mediasoup releases
  • Linux or macOS (Windows not supported)

Installation

import "github.com/jiyeyuran/mediasoup-go/v2"

Documentation

Example Usage

See mediasoup-go-demo for a complete example application.

Click to see code example
package main

import (
    "github.com/jiyeyuran/mediasoup-go/v2"
    // ... other imports
)

func main() {
    // Create worker
    worker, err := mediasoup.NewWorker("path/to/mediasoup-worker")
    if err != nil {
        panic(err)
    }

    // Create router
    router, err := worker.CreateRouter(&mediasoup.RouterOptions{
        // Configure media codecs
    })

    // Create WebRTC transport
    transport, err := router.CreateWebRtcTransport(&mediasoup.WebRtcTransportOptions{
        ListenInfos: []mediasoup.TransportListenInfo{
            {Ip: "0.0.0.0", AnnouncedAddress: "your.public.ip"},
        },
    })

    // Use the transport to produce/consume media
    // ...
}

License

ISC

About

golang library for mediasoup

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages