Ingesting and transcoding are performed in parallel by multiple dedicated transcoders, delivering exceptional performance and cost efficiency for the most CPU-intensive video codecs and resolutions.
Each transcoder working on a job is dedicated, not shared, ensuring optimal performance.
Our horizontal scaling architecture allows us to process thousands of jobs simultaneously, delivering exceptional performance.
Chunkify's service is available in multiple regions in North America, Europe, and Asia, ensuring fast and reliable transcoding for your videos.
Every scene compresses differently. Trained on 100K+ videos across 12 content categories, Chunkify’s model analyzes motion, texture, and detail in each chunk to select the CRF or average bitrate needed for consistently high visual quality.
A fair and proven model where billing is based on the exact compute time needed to process a video reflecting your real usage.
Always the Best Balance
Between Speed and Cost
Manually set the number of transcoders and their type to control the balance between performance and cost.
Switch to Auto Mode and let our algorithm trained on hundreds of thousands of videos find the optimal trade-off for a specific video file.
vCPU
Optimal balance between transcoding speed and cost
A streamlined REST API with official SDKs for Go, TypeScript, Python, and PHP. Plus a React component for seamless integration into your Nextjs application.
Complete API for modern applications
Our API is focused on Developer Experience and very easy to use. Integrate Chunkify into your application in no time.
Explore documentationimport Chunkify from '@chunkify/chunkify';
// Initialize the client with your project token
const client = new Chunkify({
projectAccessToken: 'sk_project_token',
});
// Create a source first
const source = await client.sources.create({
url: 'https://s3.amazonaws.com/bucket/your_source.mp4',
});
// Use h264 format with 1080p resolution and 10 transcoders with 8vCPU for this job
const job = await client.jobs.create({
source_id: source.id,
format: {
id: 'mp4_h264',
height: 1080,
}
transcoder: {
type: '8vCPU',
quantity: 10,
}
});
console.log('Job created with ID:', job.id);
import {
ChunkifyUploader,
ChunkifyUploaderFileSelect,
ChunkifyUploaderProgressText,
ChunkifyUploaderProgressBar,
ChunkifyUploaderError,
ChunkifyUploaderSuccess,
} from '@chunkify/uploader/react';
export default function App() {
return (
<ChunkifyUploader endpoint="https://your.presign.upload.url">
<ChunkifyUploaderFileSelect>
Select a file
</ChunkifyUploaderFileSelect>
<ChunkifyUploaderProgressText />
<ChunkifyUploaderProgressBar />
<ChunkifyUploaderError>
Upload Error
</ChunkifyUploaderError>
<ChunkifyUploaderSuccess>
Upload Success!
</ChunkifyUploaderSuccess>
</ChunkifyUploader>
);
}import(
"context"
"fmt"
"github.com/chunkifydev/chunkify-go"
"github.com/chunkifydev/chunkify-go/option"
)
func main() {
// Initialize the client with your project token
client := chunkify.NewClient(
option.WithProjectAccessToken("sk_project_token"),
)
// Create a new source
source, err := client.Sources.New(context.TODO(), chunkify.SourceNewParams{
URL: "https://s3.amazonaws.com/bucket/your_source.mp4",
})
if err != nil {
panic(err)
}
// Transcode using h264 format with 1080p resolution
config := &chunkify.MP4H264Param{
Height: chunkify.Int(1080),
Crf: chunkify.Int(21),
}
// Use 10 transcoders with 8vCPU for this job
jobParams := chunkify.JobNewParams{
SourceID: source.ID,
Format: chunkify.JobNewParamsFormatUnion{
OfMP4H264: config,
},
Transcoder: chunkify.JobNewParamsTranscoder{
Quantity: chunkify.Int(10),
Type: "8vCPU",
},
}
// Start the job
job, err := client.Jobs.New(context.TODO(), jobParams)
if err != nil {
panic(err)
}
fmt.Println("Job created with ID:", job.Id)
}<?php
require_once __DIR__ . '/vendor/autoload.php';
use Chunkify\Client;
// Initialize the client with your project token
$client = new Client(
projectAccessToken: 'sk_project_token',
);
// Create a new source
$source = $client->sources->create(
url: 'https://s3.amazonaws.com/bucket/your_source.mp4',
);
// Transcode to H.264 at 1080p
// Use 10 transcoders with 8vCPU for this job
$job = $client->jobs->create(
format: [
'id' => 'mp4_h264',
'height' => 1080,
'crf' => 21,
],
sourceID: $source->id,
transcoder: [
'quantity' => 10,
'type' => '8vCPU',
],
);
echo 'Job created with ID: ' . $job->id;
from chunkify import Chunkify
# Initialize client with your project token
client = Chunkify(
project_token="sk_project_token"
)
# Create a new source
source = client.sources.create(
url="https://s3.amazonaws.com/bucket/your_source.mp4",
)
# Transcode using mp4 format with h264 codec and 1080p resolution
# Using 10 transcoders of type 8vCPU.
job = client.jobs.create(
source_id=source.id,
format={
"id": "mp4_h264",
"height": 1080,
},
transcoder={
"type": "8vCPU",
"quantity": 10,
}
);
print(f"Job created with ID:", {job.id});Track everything in real time, gain insights into your video activity, and continuously optimize your transcoding strategy.
Easily define encoding presets for your project.
Manage your jobs and check their status.
See how transcoders perform.
Monitor your transcoding usage in real time.
Need more information? Contact our sales team to schedule a demo.
Talk to our sales team