{"id":13416695,"url":"https://github.com/gwuhaolin/livego","last_synced_at":"2025-05-14T07:08:05.375Z","repository":{"id":37359486,"uuid":"92648433","full_name":"gwuhaolin/livego","owner":"gwuhaolin","description":"live video streaming server in golang","archived":false,"fork":false,"pushed_at":"2024-11-06T02:06:10.000Z","size":2643,"stargazers_count":9923,"open_issues_count":139,"forks_count":2020,"subscribers_count":228,"default_branch":"master","last_synced_at":"2025-05-07T06:38:32.595Z","etag":null,"topics":["flash","flv","golang","h264","hls","livestream","rtmp","video"],"latest_commit_sha":null,"homepage":"","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/gwuhaolin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-28T08:11:36.000Z","updated_at":"2025-05-06T03:15:52.000Z","dependencies_parsed_at":"2024-06-18T12:22:47.679Z","dependency_job_id":"8fe4a3e7-79cf-4cca-a4db-c0a3bce868a7","html_url":"https://github.com/gwuhaolin/livego","commit_stats":{"total_commits":127,"total_committers":28,"mean_commits":4.535714285714286,"dds":0.7480314960629921,"last_synced_commit":"42d7596e804855190b0d18497e9c0264643ead3e"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gwuhaolin%2Flivego","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gwuhaolin%2Flivego/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gwuhaolin%2Flivego/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gwuhaolin%2Flivego/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gwuhaolin","download_url":"https://codeload.github.com/gwuhaolin/livego/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092652,"owners_count":22013290,"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":["flash","flv","golang","h264","hls","livestream","rtmp","video"],"created_at":"2024-07-30T22:00:20.192Z","updated_at":"2025-05-14T07:08:05.352Z","avatar_url":"https://github.com/gwuhaolin.png","language":"Go","funding_links":[],"categories":["Go","Popular","开源类库","Social Networks and Platforms","golang","Open source library","Go (531)","HarmonyOS","video","Streaming Protocols","Infrastructure \u0026 Delivery"],"sub_categories":["视频","Streaming Platforms (Twitch)","Video","Windows Manager","Rust","Live Streaming Servers"],"readme":"\u003cp align='center'\u003e\n    \u003cimg src='./logo.png' width='200px' height='80px'/\u003e\n\u003c/p\u003e\n\n[中文](./README_cn.md)\n\n[![Test](https://github.com/gwuhaolin/livego/actions/workflows/test.yml/badge.svg)](https://github.com/gwuhaolin/livego/actions/workflows/test.yml)\n[![Release](https://github.com/gwuhaolin/livego/actions/workflows/release.yml/badge.svg)](https://github.com/gwuhaolin/livego/actions/workflows/release.yml)\n[![CodeQL Advanced](https://github.com/gwuhaolin/livego/actions/workflows/codeql.yml/badge.svg)](https://github.com/gwuhaolin/livego/actions/workflows/codeql.yml)\n\nSimple and efficient live broadcast server:\n- Very simple to install and use;\n- Pure Golang, high performance, and cross-platform;\n- Supports commonly used transmission protocols, file formats, and encoding formats;\n\n#### Supported transport protocols\n- RTMP\n- AMF\n- HLS\n- HTTP-FLV\n\n#### Supported container formats\n- FLV\n- TS\n\n#### Supported encoding formats\n- H264\n- AAC\n- MP3\n\n## Installation\nAfter directly downloading the compiled [binary file](https://github.com/gwuhaolin/livego/releases), execute it on the command line.\n\n#### Boot from Docker\nRun `docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego` to start\n\n#### Compile from source\n1. Download the source code `git clone https://github.com/gwuhaolin/livego.git`\n2. Go to the livego directory and execute `go build` or `make build`\n\n## Use\n1. Start the service: execute the livego binary file or `make run` to start the livego service;\n2. Get a channelkey(used for push the video stream) from `http://localhost:8090/control/get?room=movie` and copy data like your channelkey.\n3. Upstream push: Push the video stream to `rtmp://localhost:1935/{appname}/{channelkey}` through the` RTMP` 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](https://s3plus.meituan.net/v1/mss_7e425c4d9dcb4bb4918bbfa2779e6de1/mpack/default/demo.flv));\n4. Downstream playback: The following three playback protocols are supported, and the playback address is as follows:\n    - `RTMP`:`rtmp://localhost:1935/{appname}/movie`\n    - `FLV`:`http://127.0.0.1:7001/{appname}/movie.flv`\n    - `HLS`:`http://127.0.0.1:7002/{appname}/movie.m3u8`\n5. 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)\n\nall options: \n```bash\n./livego  -h\nUsage of ./livego:\n      --api_addr string       HTTP manage interface server listen address (default \":8090\")\n      --config_file string    configure filename (default \"livego.yaml\")\n      --flv_dir string        output flv file at flvDir/APP/KEY_TIME.flv (default \"tmp\")\n      --gop_num int           gop num (default 1)\n      --hls_addr string       HLS server listen address (default \":7002\")\n      --hls_keep_after_end    Maintains the HLS after the stream ends\n      --httpflv_addr string   HTTP-FLV server listen address (default \":7001\")\n      --level string          Log level (default \"info\")\n      --read_timeout int      read time out (default 10)\n      --rtmp_addr string      RTMP server listen address\n```\n\n### [Use with flv.js](https://github.com/gwuhaolin/blog/issues/3)\n\nInterested in Golang? Please see [Golang Chinese Learning Materials Summary](http://go.wuhaolin.cn/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgwuhaolin%2Flivego","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgwuhaolin%2Flivego","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgwuhaolin%2Flivego/lists"}