rtmp icon indicating copy to clipboard operation
rtmp copied to clipboard

Server implementation of Adobe's RTMP 1.0 protocol in Go.

rtmp

Server implementation of RTMP 1.0 protocol in Go.

Getting Started

Usage is like this:

package main

import (
	"flag"
	"log"

	"github.com/c-bata/rtmp"
)

func main() {
	var addr string
	flag.StringVar(&addr, "addr", ":1935", `TCP address to listen on, ":1935" if empty`)
	flag.Parse()

	log.Printf("Serving RTMP on %s", addr)
	err := rtmp.ListenAndServe(addr)
	if err != nil {
		log.Fatalf("Catch Error: %s", err)
	}
}

Build an example server script via Make and Run it.

$ make build
$ ./bin/server -addr :1935
2018/01/28 17:09:53 Serving RTMP on :1935 (rev-a669378)

After that, you can send a RTMP stream using RTMP client like ffmpeg or Wirecast. In the case of using ffmpeg, please execute a following command.

$ ffmpeg -re -i /path/to/your_video.mp4 -map 0 -c:v libx264 -c:a aac -f flv rtmp://127.0.0.1:1935/appName/appInstance

GIF Animation - Receiving RTMP Stream.

Bibliography