video-transcoding-api

command module
v1.8.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

README

video-transcoding-api logo

Video Transcoding API

Build Status Go Report Card Docker Pulls

The Video Transcoding API provides an agnostic API to transcode media assets across different cloud services. Currently, it supports the following providers:

Setting Up

With latest Go installed, make sure to export the follow environment variables:

Providers configuration
For Amazon Elastic Transcoder
export AWS_ACCESS_KEY_ID=your.access.key.id
export AWS_SECRET_ACCESS_KEY=your.secret.access.key
export AWS_REGION="us-east-1"
export ELASTICTRANSCODER_PIPELINE_ID="yourpipeline-id"

Please notice that for Elastic Transcoder you don't specify the destination bucket, as it is defined in the Elastic Transcoder Pipeline.

For Bitmovin
export BITMOVIN_API_KEY=your.api.key
export BITMOVIN_AWS_ACCESS_KEY_ID=your.access.key.id
export BITMOVIN_AWS_SECRET_ACCESS_KEY=your.secret.access.key
export BITMOVIN_AWS_STORAGE_REGION=your.s3.region.such.as.US_EAST_1.or.EU_WEST_1
export BITMOVIN_DESTINATION=s3://your-s3-bucket
export BITMOVIN_ENCODING_REGION=your.provider.region.such.as.AWS_US_EAST_1.or.GOOGLE_EUROPE_WEST_1
export BITMOVIN_ENCODING_VERSION=STABLE.or.BETA
For Elemental Conductor
export ELEMENTALCONDUCTOR_HOST=https://conductor-address.cloud.elementaltechnologies.com/
export ELEMENTALCONDUCTOR_USER_LOGIN=your.login
export ELEMENTALCONDUCTOR_API_KEY=your.api.key
export ELEMENTALCONDUCTOR_AUTH_EXPIRES=30
export ELEMENTALCONDUCTOR_AWS_ACCESS_KEY_ID=your.access.key.id
export ELEMENTALCONDUCTOR_AWS_SECRET_ACCESS_KEY=your.secret.access.key
export ELEMENTALCONDUCTOR_DESTINATION=s3://your-s3-bucket/
For Encoding.com
export ENCODINGCOM_USER_ID=your.user.id
export ENCODINGCOM_USER_KEY=your.user.key
export ENCODINGCOM_DESTINATION=http://access.key.id:secret.access.key@your-s3-bucket.s3.amazonaws.com/
export ENCODINGCOM_REGION="us-east-1"
For Hybrik
export HYBRIK_URL=your.hybrik.api.endpoint.such.as.https://api_demo.hybrik.com/v1
export HYBRIK_COMPLIANCE_DATE=20170601
export HYBRIK_OAPI_KEY=your.hybrik.oapi.key
export HYBRIK_OAPI_SECRET=your.hybrik.oapi.secret
export HYBRIK_AUTH_KEY=your.hybrik.auth.key
export HYBRIK_AUTH_SECRET=your.hybrik.auth.secret
export HYBRIK_DESTINATION=s3://your-s3-bucket
export HYBRIK_PRESET_PATH=video-transcoding-api-presets

HYBRIK_PRESET_PATH is optional and defines the folder presets will be stored in. If not specified, it will default to 'video-transcoding-api-presets'.

For Zencoder
export ZENCODER_API_KEY=your.api.key
export ZENCODER_DESTINATION=http://access.key.id:secret.access.key@your-s3-bucket.s3.amazonaws.com/
For MediaConvert
export MEDIACONVERT_AWS_ACCESS_KEY_ID=your.access.key.id
export MEDIACONVERT_AWS_SECRET_ACCESS_KEY=your.secret.access.key
export MEDIACONVERT_AWS_REGION="us-east-1"
export MEDIACONVERT_ENDPOINT=your.mediaconvert.endpoint
export MEDIACONVERT_QUEUE_ARN=your.queue.arn
export MEDIACONVERT_ROLE_ARN=your.iam.role.arn
export MEDIACONVERT_DESTINATION=s3://your-s3-bucket
Database configuration

In order to store preset maps and job statuses we need a Redis instance running. Learn how to setup and run a Redis here. With the Redis instance running, set its configuration variables:

export REDIS_ADDR=192.0.2.31
export REDIS_PASSWORD=p4ssw0rd.here

If you are running Redis in the same host of the API and on the default port (6379) the API will automatically find the instance and connect to it.

With all environment variables set and redis up and running, clone this repository and run:

$ git clone https://github.com/video-dev/video-transcoding-api.git
$ make run

Running tests

$ make test

Using the API

Check out on our Wiki how to use this API.

Contributing

  1. Fork it
  2. Create your feature branch: git checkout -b my-awesome-new-feature
  3. Commit your changes: git commit -m 'Add some awesome feature'
  4. Push to the branch: git push origin my-awesome-new-feature
  5. Submit a pull request

License

Documentation

Overview

video-transcoding-api

HTTP API for transcoding media files into different formats using pluggable providers.

## Currently supported providers

+ [Amazon Elastic Transcoder](https://aws.amazon.com/elastictranscoder/) + [Elemental Conductor](https://www.elementaltechnologies.com/products/elemental-conductor) + [Encoding.com](http://api.encoding.com) + [Zencoder](http://zencoder.com)

Schemes: http BasePath: / Version: 1.0.0 License: Apache 2.0 http://www.apache.org/licenses/LICENSE-2.0.html

Consumes: - application/json

Produces: - application/json

swagger:meta

Directories

Path Synopsis
db
redis/storage
Package storage provides a type for storing Go objects in Redis.
Package storage provides a type for storing Go objects in Redis.
elastictranscoder
Package elastictranscoder provides a implementation of the provider that uses AWS Elastic Transcoder for transcoding media files.
Package elastictranscoder provides a implementation of the provider that uses AWS Elastic Transcoder for transcoding media files.
elementalconductor
Package elementalconductor provides a implementation of the provider that uses the Elemental Conductor API for transcoding media files.
Package elementalconductor provides a implementation of the provider that uses the Elemental Conductor API for transcoding media files.
encodingcom
Package encodingcom provides a implementation of the provider that uses the Encoding.com API for transcoding media files.
Package encodingcom provides a implementation of the provider that uses the Encoding.com API for transcoding media files.
zencoder
Package zencoder provides a implementation of the provider that uses the Zencoder API for transcoding media files.
Package zencoder provides a implementation of the provider that uses the Zencoder API for transcoding media files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL