MCPcopy Index your code
hub / github.com/gwuhaolin/livego

github.com/gwuhaolin/livego @0.0.20 sqlite

repository ↗ · DeepWiki ↗ · release 0.0.20 ↗
586 symbols 1,671 edges 64 files 82 documented · 14%
README
<img src='./logo.png' width='200px' height='80px'/>

中文

Test Release

Simple and efficient live broadcast server: - Very simple to install and use; - Pure Golang, high performance, and cross-platform; - Supports commonly used transmission protocols, file formats, and encoding formats;

Supported transport protocols

  • RTMP
  • AMF
  • HLS
  • HTTP-FLV

Supported container formats

  • FLV
  • TS

Supported encoding formats

  • H264
  • AAC
  • MP3

Installation

After directly downloading the compiled binary file, execute it on the command line.

Boot from Docker

Run docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego to start

Compile from source

  1. Download the source code git clone https://github.com/gwuhaolin/livego.git
  2. Go to the livego directory and execute go build or make build

Use

  1. Start the service: execute the livego binary file or make run to start the livego service;
  2. Get a channelkey(used for push the video stream) from http://localhost:8090/control/get?room=movie and copy data like your channelkey.
  3. Upstream push: Push the video stream to rtmp://localhost:1935/{appname}/{channelkey} through theRTMP protocol(default appname is live), for example, use ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey} push(download demo flv);
  4. Downstream playback: The following three playback protocols are supported, and the playback address is as follows:
    • RTMP:rtmp://localhost:1935/{appname}/movie
    • FLV:http://127.0.0.1:7001/{appname}/movie.flv
    • HLS:http://127.0.0.1:7002/{appname}/movie.m3u8
  5. Use hls via https: generate ssl certificate(server.key, server.crt files), place them in directory with executable file, change "use_hls_https" option in livego.yaml to true (false by default)

all options:

./livego  -h
Usage of ./livego:
      --api_addr string       HTTP manage interface server listen address (default ":8090")
      --config_file string    configure filename (default "livego.yaml")
      --flv_dir string        output flv file at flvDir/APP/KEY_TIME.flv (default "tmp")
      --gop_num int           gop num (default 1)
      --hls_addr string       HLS server listen address (default ":7002")
      --hls_keep_after_end    Maintains the HLS after the stream ends
      --httpflv_addr string   HTTP-FLV server listen address (default ":7001")
      --level string          Log level (default "info")
      --read_timeout int      read time out (default 10)
      --rtmp_addr string      RTMP server listen address

Use with flv.js

Interested in Golang? Please see Golang Chinese Learning Materials Summary

Extension points exported contracts — how you extend this code

WriteCloser (Interface)
(no doc) [12 implementers]
av/av.go
StreamReadWriteCloser (Interface)
(no doc) [3 implementers]
protocol/rtmp/rtmp.go
ExternalHandler (FuncType)
(no doc)
protocol/amf/const.go
Closer (Interface)
(no doc) [5 implementers]
av/av.go
GetInFo (Interface)
(no doc) [2 implementers]
protocol/rtmp/rtmp.go
ReadCloser (Interface)
(no doc) [5 implementers]
av/av.go
CodecParser (Interface)
(no doc) [4 implementers]
av/av.go
SampleRater (Interface)
(no doc) [3 implementers]
av/av.go

Core symbols most depended-on inside this repo

Write
called by 67
protocol/rtmp/rtmp.go
Info
called by 26
av/av.go
Read
called by 25
protocol/rtmp/rtmp.go
AssertMarker
called by 25
protocol/amf/util.go
WriteMarker
called by 24
protocol/amf/util.go
Get
called by 21
utils/pool/pool.go
Close
called by 18
protocol/rtmp/rtmp.go
ReadUintBE
called by 18
protocol/rtmp/core/read_writer.go

Shape

Method 313
Function 180
Struct 72
Interface 16
TypeAlias 4
FuncType 1

Languages

Go100%

Modules by API surface

av/av.go37 symbols
protocol/rtmp/rtmp.go30 symbols
protocol/rtmp/stream.go24 symbols
protocol/rtmp/core/conn_server.go24 symbols
protocol/rtmp/core/conn.go19 symbols
protocol/api/api.go17 symbols
protocol/rtmp/core/conn_client.go16 symbols
protocol/amf/amf_test.go16 symbols
protocol/hls/source.go15 symbols
protocol/amf/decoder_amf3.go15 symbols
protocol/amf/encoder_amf3.go14 symbols
protocol/amf/decoder_amf0_test.go14 symbols

Dependencies from manifests, versioned

github.com/auth0/go-jwt-middlewarev0.0.0-2019080522030 · 1×
github.com/dgrijalva/jwt-gov3.2.0+incompatible · 1×
github.com/go-redis/redis/v7v7.2.0 · 1×
github.com/kr/prettyv0.1.0 · 1×
github.com/patrickmn/go-cachev2.1.0+incompatible · 1×

For agents

$ claude mcp add livego \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact