Server implementation of RTMP 1.0 protocol in Go.
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