{"id":21972820,"url":"https://github.com/agustinsrg/webrtc-forwarder","last_synced_at":"2026-05-11T04:33:54.316Z","repository":{"id":185881297,"uuid":"514200477","full_name":"AgustinSRG/webrtc-forwarder","owner":"AgustinSRG","description":"Utility for webrtc-cdn to forward WebRTC to other protocol, like RTMP.","archived":false,"fork":false,"pushed_at":"2025-03-22T11:28:22.000Z","size":42,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-22T12:25:38.490Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AgustinSRG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-15T08:52:42.000Z","updated_at":"2025-03-22T11:28:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"08b4a0f1-9a8a-46b4-b2ec-f201018a3ae3","html_url":"https://github.com/AgustinSRG/webrtc-forwarder","commit_stats":null,"previous_names":["agustinsrg/webrtc-forwarder"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fwebrtc-forwarder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fwebrtc-forwarder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fwebrtc-forwarder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fwebrtc-forwarder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgustinSRG","download_url":"https://codeload.github.com/AgustinSRG/webrtc-forwarder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245031516,"owners_count":20549926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T15:21:31.325Z","updated_at":"2026-05-11T04:33:49.282Z","avatar_url":"https://github.com/AgustinSRG.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebRTC Forwarder\n\nUtility for [webrtc-cdn](https://github.com/AgustinSRG/webrtc-cdn) to forward WebRTC to other protocol, like RTMP.\n\nIt uses [FFMpeg](https://ffmpeg.org/) for the protocol remuxing, and the [pion/webrtc](https://github.com/pion/webrtc) for WebRTC connectivity.\n\n## Compilation\n\nIn order to install dependencies, type:\n\n```\ngo get github.com/AgustinSRG/webrtc-forwarder\n```\n\nTo compile the code type:\n\n```\ngo build\n```\n\nThe build command will create a binary in the currenct directory, called `webrtc-forwarder`, or `webrtc-forwarder.exe` if you are using Windows.\n\n## Usage\n\nYou can use the program from the command line:\n\n```\nwebrtc-forwarder [OPTIONS]\n```\n\n### OPTIONS (Required)\n\nHere is a list of the required options:\n\n| Option | Description |\n|---|---|\n| `--input, -i \u003cinput-url\u003e` | Sets the input URL. Example: `ws://localhost/stream-id` |\n| `--video-port, -vp \u003cport\u003e` | Port to forward video RTP packets. |\n| `--audio-port, -ap \u003cport\u003e` | Port to forward audio RTP packets. |\n| `--sdp-file, -sdp \u003cfile.sdp\u003e` | File to use to forward the stream. After the connection is stablished, you can use this file as an input of FFMPEG. |\n| `--forward-mode, -fm \u003cmode\u003e` | Forward mode, check the section below for mode details. |\n\n### Forward modes\n\nThe available forward modes are the following:\n\n| Mode | Description |\n|---|---|\n| `TEST` | Just setups the SDP file and lets you test it by yourself. |\n| `RTMP` | Forwards to RTMP using the envirinment variable `RTMP_FORWARD_URL`. Example: `rtmp://live.twitch.tv/app/$STREAM_KEY` |\n| `CUSTOM` | Run a custom command to forward or process the stream. The command must be set in `CUSTOM_FORWARD_COMMAND` environment variable. |\n\n### OPTIONS (Optional)\n\nHere is a list of the rest of the options:\n\n| Option | Description |\n|---|---|\n| `--help, -h` | Shows the command line options |\n| `--version, -v` | Shows the version |\n| `--debug` | Enables debug mode (prints more messages) |\n| `--ffmpeg-path \u003cpath\u003e` | Sets the FFMpeg path. By default is `/usr/bin/ffmpeg`. You can also change it with the environment variable `FFMPEG_PATH` |\n| `--auth, -a \u003cauth-token\u003e` | Sets auth token for the source. |\n| `--secret, -s \u003csecret\u003e` | Provides secret to generate authentication tokens. |\n\n## WebRTC options\n\nYou can configure WebRTC configuration options with environment variables:\n\n| Variable Name | Description |\n|---|---|\n| STUN_SERVER | STUN server URL. Example: `stun:stun.l.google.com:19302` |\n| TURN_SERVER | TURN server URL. Set if the server is behind NAT. Example: `turn:turn.example.com:3478` |\n| TURN_USERNAME | Username for the TURN server. |\n| TURN_PASSWORD | Credential for the TURN server. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagustinsrg%2Fwebrtc-forwarder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagustinsrg%2Fwebrtc-forwarder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagustinsrg%2Fwebrtc-forwarder/lists"}