GitXplorerGitXplorer
p

chiwt

public
2 stars
0 forks
0 issues

Commits

List of commits on branch master.
Verified
5d729fcc738989bef772fb017edd43ceec2e38ea

Update README.md

ppetuhovskiy committed 4 years ago
Unverified
5e3c3123c3b6e4473d5672e77e8c174a3959f613

Update readme

ppetuhovskiy committed 4 years ago
Unverified
88dea72d29c26bb76fc5c0e9b33d40fd6fac9e44

Add srs

ppetuhovskiy committed 4 years ago
Verified
a45972cc33b69b2d3842a1ef3a99074529a9b680

Merge pull request #2 from petuhovskiy/use_srs

ppetuhovskiy committed 4 years ago
Unverified
447d64622f073d51ca07c6e316ceeaf1b4d8e7f0

Streaming server via SRS + bitrates + CDN

DDimasKovas committed 4 years ago
Verified
1ac48095dbbcbd625bad6a0a7ab6e441b20946cf

Merge pull request #1 from petuhovskiy/flvjs

ppetuhovskiy committed 4 years ago

README

The README file for this repository.

chiwt

Self-hosted twitch-like service

Run with Docker

Запустить простой вариант без балансеров и изменения битрейта:

docker run -d -p 80:8080 -p 1935:1935 --name chiwt arthurwow/chiwt

Также есть более сложный вариант, со всеми фичами, для его запуска можно смотреть на docker-compose.yml и srs/.

docker-compose.yml для сложного варианта
version: '3.3'

services:
  web:
    image: arthurwow/chiwt
    container_name: chiwt
    ports:
      - "80:8080"
      - "1935:1935"
    environment:
      - WEB_ADDR=:8080
      - ENABLE_INGESTOR=false
      - INGESTOR_UPLOAD=rtmp://main.diko.me:1935/live
      - INGESTOR_WATCH=http://main.diko.me:8080/,http://1.cdn.diko.me:8080/,http://2.cdn.diko.me:8080/
      - AVAILABLE_QUALITY=1080p,720p,480p,360p,240p
      - ORIGINAL_PREFIX=live/
      - ENCODED_PREFIX=shakaled/

Запустить локально

go run .

План реализации

Серверный код по необходимости планируется писать на Go, а клиент должен работать в браузере. Сама реализация будет происходить поэтапно, от самого простого к самому сложному.

  1. Посмотреть на OBS, понять в каком формате он отпраляет видеопоток, и в каком формате нужно указывать ссылку
  2. Сделать простой сервер, который может принимать видеопоток, и правильно его распознает
  3. Добавить в этот сервер ретрансляцию потока, т.е. HTTP сервер должен отдавать такой же поток как в него загружают
  4. Сделать браузерный клиент, для просмотра стрима (ретранслируемого потока)
  5. Добавить поддержку нескольких пользователей, нужную для нескольких стримов и чата
  6. Добавить на сервер поддержку real-time чата
  7. Добавить на клиент возможность логина и использования чата
  8. Добавить на сервер перекодирование под разные битрейты
  9. Добавить в клиент возможность выбора битрейта
  10. Настроить CDN для стримов (видеопотоков)

=== Вы находитесь здесь ===

Итоги

Реализован видео-стриминг в реальном времени.

+4 балла - сервер принимает поток видео и ретранслирует его +2 балла - клиент +2 балла - CDN +3 балла - при ретрансляции возможно изменение битрейта +3 балла - real-time чат

Итого: 14 баллов.