livego README

The project's README from github.com/gwuhaolin/livego. As one markdown file: README.md.

中文

Test Release CodeQL Advanced

Simple and efficient live broadcast server:

Supported transport protocols

Supported container formats

Supported encoding formats

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 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);
  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

livego (gwuhaolin/livego)

Searching Database…

10.2K ·GitHub
Что это такое?livego — это простой и эффективный сервер для прямых видеотрансляций, написанный на чистом Go: вы отправляете в него видеопоток, а он раздаёт этот поток зрителям по RTMP, HTTP-FLV и HLS.
Это сервер, который я запускаю сам, или библиотека для кодинга?Это отдельный сервер для самостоятельного размещения: запускаете бинарник livego, получаете channelkey через его HTTP API, и он сам занимается приёмом потока и его воспроизведением — программировать не нужно.
Как его запустить?Быстрее всего через Docker: docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego. Также можно скачать готовый бинарник и запустить его либо собрать из исходников командой go build или make build.
Нужно ли что-то ещё ставить кроме livego?Нет — это один самодостаточный бинарник на чистом Go. Понадобятся только кодировщик для отправки потока (в примере из README используется ffmpeg) и плеер, который поддерживает RTMP, FLV или HLS.
Какие протоколы и кодеки он поддерживает — и что он не раздаст?Он покрывает типичный стек для прямых трансляций: RTMP, AMF, HLS и HTTP-FLV для передачи, контейнеры FLV и TS, видео H264 и звук AAC или MP3. Всё, что выходит за этот список, не поддерживается.
Мне нужно знать Go, чтобы им пользоваться?Нет — запуск сводится к выполнению бинарника или Docker-команды. Go нужен только если вы хотите собрать его сами из исходников.
Как опубликовать поток и посмотреть его?Получите channelkey у запущенного сервера, отправьте свой поток на rtmp://localhost:1935/{appname}/{channelkey} (по умолчанию appname — 'live'), затем смотрите по RTMP-, FLV- или HLS-адресам воспроизведения, которые перечислены в README.
На каких портах он слушает?Docker-команда открывает четыре: 1935 для RTMP, а также 7001, 7002 и 8090 — по ним работают HTTP-эндпоинты: API для channelkey и воспроизведение HTTP-FLV/HLS.
Можно ли раздавать HLS по HTTPS?Да: сгенерируйте SSL-сертификат (server.key и server.crt), положите оба файла рядом с исполняемым файлом livego и включите usehlshttps в значение true в livego.yaml — по умолчанию там стоит false.
Зачем автор создал livego?Цель, заявленная в README, — сервер прямых трансляций, который очень просто установить и использовать: чистый Go ради высокой производительности и кроссплатформенности, плюс поддержка распространённых стриминговых протоколов из коробки.
Creator
gwuhaolin
Size
2.6 MB
Stars
10.2K
Age
9y
Commits · 90 Days