Skip to content
Transcodes HTTP-stream to HLS
Go HTML Shell Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
server
vendor
.dockerignore
.gitignore
Dockerfile
LICENSE
README.md
go.mod
go.sum

README.md

content-transcoder

Transcodes HTTP-stream to HLS with additional features:

  1. Web-access to transcoded content
  2. On-demand transcoding
  3. Quits after specific period of inactivity

Requirements

  1. FFmpeg 3+

Basic usage

% ./server help
NAME:
   content-transcoder-server - runs content transcoder

USAGE:
   server [global options] command [command options] [arguments...]

VERSION:
   0.0.1

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --host value, -H value                    listening host
   --port value, -P value                    listening port (default: 8080)
   --probe-port value, --pP value            probe port (default: 8081)
   --input value, -i value, --url value      input (url) [$INPUT, $ SOURCE_URL, $ URL]
   --output value, -o value                  output (local path) (default: "out")
   --content-prober-host value, --cpH value  hostname of the content prober service [$CONTENT_PROBER_SERVICE_HOST]
   --content-prober-port value, --cpP value  port of the content prober service (default: 50051) [$CONTENT_PROBER_SERVICE_PORT]
   --access-grace value, --ag value          access grace in seconds (default: 600) [$GRACE]
   --preset value                            transcode preset (default: "ultrafast") [$PRESET]
   --transcode-grace value, --tg value       transcode grace in seconds (default: 5) [$TRANSCODE_GRACE]
   --probe-timeout value, --pt value         probe timeout in seconds (default: 600) [$PROBE_TIMEOUT]
   --job-id value                            job id [$JOB_ID]
   --info-hash value                         info hash [$INFO_HASH]
   --file-path value                         file path [$FILE_PATH]
   --extra value                             extra [$EXTRA]
   --player                                  player
   --help, -h                                show help
   --version, -v                             print the version

Example

cd server &&
rm -rf out/* && rm -rf tmp/* &&
go build -mod=vendor . &&
./server --input='https://github.com/Matroska-Org/matroska-test-files/raw/master/test_files/test5.mkv' --player=true

Then you can open your browser http://localhost:8080/player/ and watch movie

You can’t perform that action at this time.