Complete VOD Pipeline
Deploy a production-ready video-on-demand pipeline with transcoding and adaptive bitrate packaging β all with a single command.
What You'll Learn
Architecture Overview
Prerequisites
- Completed the Getting Started tutorial
- Claude Code connected to OSC via MCP
- A source video file to transcode (MP4, MOV, etc.)
Step-by-Step Guide
Deploy the VOD Pipeline Solution
Ask Claude to deploy the complete VOD Pipeline solution. This will automatically provision and connect all the required services:
> Deploy a VOD Pipeline solution for video transcoding and packagingClaude will ask you for the required credentials and then deploy:
- MinIO β S3-compatible object storage for source and output files
- Valkey β Message queue for job coordination
- Encore β Video transcoder for creating multiple bitrate renditions
- Encore Callback Listener β Triggers packaging when transcoding completes
- Encore Packager β Creates HLS/DASH ABR streams from transcoded files
Note: You'll need to provide passwords for MinIO and Valkey. Use strong passwords and save them securely.
Tip: The deployment takes a few minutes. Once complete, ask Claude for the MinIO console URL to manage your storage.
Access MinIO Storage
After deployment, get your MinIO console credentials and URL:
> What is the MinIO console URL for my VOD pipeline?Log in to the MinIO console with the username and password you provided during setup. You'll see two buckets have been created:
- encore β For uploading source videos and storing transcoded outputs
- encore-packager β For final HLS/DASH packaged streams
Tip: You can also use any S3-compatible client (like AWS CLI or Cyberduck) to upload files to MinIO.
Upload a Source Video
Upload a video file to the encore bucket. You can use the MinIO console or ask Claude to help with the CLI:
> How do I upload a video to my VOD pipeline using the CLI?Claude will provide you with the mc (MinIO Client) commands to upload your video. Supported formats include MP4, MOV, MKV, and other common video formats.
Note: For best results, use high-quality source files. The transcoder will create multiple bitrate versions automatically.
Start a Transcoding Job
Once your video is uploaded, ask Claude to start a transcoding job. Make sure to include the callback listener URL so the packager is triggered automatically:
> Start transcoding the video "my-video.mp4" in my VOD pipeline and use the callback listener for progress updatesImportant: The transcoding job must include a progressCallbackUri pointing to the callback listener. This is how Encore notifies the system when transcoding is complete, which triggers the packager. If you run into issues, ask Claude to consult the OSC Architect for guidance on the correct callback configuration.
Encore will process your video and create multiple renditions at different bitrates and resolutions. The transcoding profile includes:
- Multiple video qualities (e.g., 1080p, 720p, 480p)
- Adaptive bitrate encoding for smooth playback
- Audio track processing
> What is the status of my transcoding job?Tip: Transcoding time depends on video length and complexity. Claude can check the job status for you at any time.
Automatic ABR Packaging
When transcoding completes, the callback listener automatically triggers the packager. The packager creates streaming-ready formats:
- HLS β HTTP Live Streaming for Apple devices and web
- DASH β Dynamic Adaptive Streaming over HTTP for broad compatibility
The packaged output is stored in the encore-packager bucket in a folder structure ready for CDN delivery.
Fully Automated: The entire flow from upload to packaged output is automatic β no manual steps required between transcoding and packaging.
Play Your VOD Content
Before you can stream your content, you need to make the packager output bucket publicly accessible:
> Make the encore-packager bucket public so I can stream from itRequired: The encore-packager bucket must be set to public access for video players to fetch the HLS/DASH manifests and segments.
Once the bucket is public, ask Claude for the playback URL:
> What is the HLS playback URL for my packaged video?You can test playback using any HLS-compatible player. Try these options:
Done! Your VOD content is now ready for streaming. The adaptive bitrate ensures smooth playback across different network conditions.
VOD Pipeline Complete!
You now have a production-ready VOD pipeline. Upload videos, and they'll be automatically transcoded and packaged for adaptive streaming across all devices and network conditions.
What's Next?
Add a CDN
Connect a CDN to your MinIO bucket for global content delivery with low latency.
> How do I serve my VOD content through a CDN?Automate Ingestion
Set up watch folders or API integrations for automated video ingestion workflows.
> Create an automated video ingestion workflowExplore More
Check out more VOD-related use cases or browse other tutorials to expand your streaming infrastructure.