Creamy Transcode
Simple self-hostable media transcoding SaaSS
Building
go get
go build
Testing
# get all dependencies of all packages including test dependencies
go get -t ./...
# vet all packages
go vet ./...
# test all packages
go test ./...
Roadmap
- parse a format like
mp4:1080p:mp3:2pass
into something machine-readable - when given this basic parsed format, some secondary options, and a source video URL, convert the source video into the target format
- when given an HTTP(S) source video url, download it
- when given a source video path, extract metadata like width, length, etc: mediainfo
- parse a config file into something machine-readable
- shove source video metadata into config file vars
- somehow parse "secondary url options" like
, metadata=true
,, number=6
, etc - actually handle these parsed "secondary url options"
- working
if
statements in config file - output thumbnails using format
-> jpg:300x = $base_s3/thumbnail_small_#num#.jpg, number=6
- post with-metadata and without-metadata webhooks on state changes
- upload to S3 when given a file and an S3 url like
s3://access:secret@bucket/video.mp4
- also handle "unofficial" S3-compatible services like Minio
- download from and upload to FTP, SFTP locations
- WebVTT thumbnails/metadata