Package your media files into HLS & MPEG-Dash, all in once.

All is automated, from transcoding into different renditions, packaging and uploading everything back to your CDN.

Start Transcoding
No credit card required

HLS & MPEG-Dash, generated all in once.

Compatible with every devices and browsers

Video transcoding - Apple HTTP Live Streaming (HLS)

HLS

Media files are split into .ts segments. Widely compatible.
Learn more

Video transcoding - CMF HLS fMP4

HLS fMP4

Media files are fragmented MP4 and we use them for MPEG-Dash too!
Learn more

Video transcoding - MPEG-DASH for Android

MPEG-Dash

The standard adaptive bitrate HTTP-based streaming solution.
Learn more

Edit your HLS & Dash videos.

Add watermark, cut, or change the aspect ratio. It's up to you

Read documentation →
Video transcoding feature - watermarking, overlaying logo.

Customize the variants.

Our default ones are great, but sometimes you need more

H264 and HEVC codecs

Variants with H264 (default) and new HEVC codec are supported.
Learn more

Segment duration

Change the segment duration if needed.
‍‍Learn more

No waste of resource

We never upscale to higher resolutions than the original video.
‍‍Learn more

The simplest Video Transcoding API
for packaging into HLS and MPEG-Dash.

Enjoy powerful libraries to harness cloud video encoding for your project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Our mission at Coconut is to make cloud video transcoding simple
const coconut = new Coconut.Client('api-key');

coconut.notification = {
  'url': 'https://app/api/coconut/webhook'
};

coconut.storage = { 
  'service': 's3',
  'bucket': 'mybucket',
  'region': 'us-east-1',
  'credentials': { 'access_key_id': 'xxx', 'secret_access_key': 'xxx' }
};

coconut.Job.create({
  'input': { 'url': 'https://cdn/path/file.mp4' },
  'outputs': {
    'httpstream': {
      'playlist_name': 'master',
      'hls': {
        'path': '/hls'
      },
      'dash': {
        'path': '/dash',
        'hlsfmp4': true
      }
    }
  }
}, function(job, err) {
...
});
Read documentation →