Video Streaming
Professional video transcoding with adaptive streaming, instant delivery, and automatic processing for any device or connection.
Welcome to RIXL Video Streaming — where every video becomes a streaming powerhouse. Upload any format and get back professional HLS & DASH streams with adaptive quality, instant thumbnails, and global CDN delivery.
Quick Actions
Upload Videos
Professional video transcoding with adaptive streaming and instant delivery.
Video Component
Drop-in video player with HLS streaming, progress tracking, and controls.
Dashboard Management
Upload, organize, and manage videos through our web interface.
How RIXL Transforms Your Videos
Upload Any Format
Drop in MP4, MOV, AVI, WebM, or any video format. RIXL accepts files up to 2GB each.
Choose Quality Tier
Select Basic (720p), Shorts (1080p), or Pro (4K) based on your content and audience needs.
Automatic Processing
RIXL creates multiple quality levels, generates thumbnails, and prepares HLS streams automatically.
Global CDN Delivery
Your processed videos are distributed to 200+ edge locations worldwide for instant streaming anywhere.
Video Processing Features
Adaptive HLS Streaming
Multiple quality levels that automatically adjust based on connection speed and device capabilities.
Instant Thumbnails
Automatic thumbnail generation in AVIF format with smart frame selection.
Quality Tiers
Basic (720p), Shorts (1080p), Pro (4K) processing options for different use cases.
Progress Tracking
Real-time processing status and progress monitoring through dashboard and API.
Global CDN
Edge caching and intelligent routing for instant video delivery worldwide.
Smart Compression
Optimal encoding settings that balance file size and visual quality automatically.
Quality Tiers
Choose the right processing tier for your content and audience:
Perfect for:
- Web content and tutorials
- Desktop-focused viewing
- Fast processing requirements
- Bandwidth-conscious delivery
Specifications:
- 720p HD maximum resolution
- 24fps/30fps frame rates
- Fastest processing times (~1x video length)
- Smallest file sizes
- Ideal for educational content and web videos
Perfect for:
- Social media content
- Mobile-first experiences
- Vertical video content
- 60fps smooth motion
Specifications:
- 1080p Full HD maximum
- Up to 60fps frame rates
- Mobile-ready encoding
- Medium processing times (~1.5x video length)
- Perfect for social platforms and mobile viewing
Perfect for:
- Professional broadcasts
- 4K/HDR content
- Premium streaming experiences
- Production-quality output
Specifications:
- 4K Ultra HD support
- Up to 60fps with HDR
- Professional audio processing
- Longest processing times (~2-3x video length)
- Cinema-quality output for premium content
Implementation Examples
React Component Usage
import {Video} from '@rixl/videosdk-react';
function VideoPlayer({videoId}) {
return (
<Video
id={videoId}
className="w-full h-auto rounded-lg"
progressBar={true}
allowFullscreen={true}
autoplay={false}
muted={false}
/>
);
}import {Video, useProgressBar} from '@rixl/videosdk-react';
import {useRef} from 'react';
function AdvancedVideoPlayer({videoId, onComplete}) {
const videoRef = useRef(null);
const {progress, duration, isPlaying} = useProgressBar({video: videoRef.current});
return (
<div className="video-container">
<Video
ref={videoRef}
id={videoId}
className="w-full h-auto rounded-lg shadow-lg"
progressBar={true}
allowFullscreen={true}
controls={true}
poster={`https://cdn.rixl.com/${videoId}/thumbnail.jpg`}
onPlay={() => console.log('Video started')}
onPause={() => console.log('Video paused')}
onEnded={onComplete}
/>
<div className="video-info mt-4 p-4 bg-gray-100 rounded">
<div className="flex justify-between items-center">
<span>Progress: {Math.round(progress * 100)}%</span>
<span>Duration: {Math.round(duration)}s</span>
<span className={`status ${isPlaying ? 'text-green-600' : 'text-gray-600'}`}>
{isPlaying ? 'Playing' : 'Paused'}
</span>
</div>
</div>
</div>
);
}import {Video, useProgressBar} from '@rixl/videosdk-react';
import {useState, useRef} from 'react';
function CustomVideoPlayer({videoId}) {
const videoRef = useRef(null);
const {progress, duration, isPlaying} = useProgressBar({video: videoRef.current});
const [showControls, setShowControls] = useState(true);
const handlePlayPause = () => {
if (videoRef.current) {
if (isPlaying) {
videoRef.current.pause();
} else {
videoRef.current.play();
}
}
};
const handleSeek = (value) => {
if (videoRef.current && duration) {
videoRef.current.currentTime = value * duration;
}
};
return (
<div
className="relative video-container"
onMouseEnter={() => setShowControls(true)}
onMouseLeave={() => setShowControls(false)}
>
<Video
ref={videoRef}
id={videoId}
className="w-full h-auto"
progressBar={false}
controls={false}
allowFullscreen={true}
/>
{showControls && (
<div className="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/70 to-transparent p-4">
<div className="flex items-center gap-4">
<button
onClick={handlePlayPause}
className="text-white hover:text-gray-300"
>
{isPlaying ? '⏸️' : '▶️'}
</button>
<div className="flex-1">
<input
type="range"
min="0"
max="1"
step="0.01"
value={progress}
onChange={(e) => handleSeek(parseFloat(e.target.value))}
className="w-full"
/>
</div>
<span className="text-white text-sm">
{Math.round(progress * duration)}s / {Math.round(duration)}s
</span>
</div>
</div>
)}
</div>
);
}API Integration
// Initialize video upload with quality tier
const uploadVideo = async (videoFile, qualityTier = 'pro') => {
const initResponse = await fetch('https://api.rixl.com/videos/upload/init', {
method: 'POST',
headers: {
'X-API-Key': 'YOUR_PROJECT_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file_name: videoFile.name,
video_quality: qualityTier,
image_format: 'jpg'
})
});
const {video_id, video_presigned_url, upload_expires} = await initResponse.json();
// Upload file to presigned URL
await fetch(video_presigned_url, {
method: 'PUT',
body: videoFile,
headers: {
'Content-Type': videoFile.type
}
});
return video_id;
};// Monitor video processing status
const monitorProcessing = async (videoId) => {
const checkStatus = async () => {
const response = await fetch(`https://api.rixl.com/videos/${videoId}`, {
headers: {
'X-API-Key': 'YOUR_PROJECT_API_KEY'
}
});
const result = await response.json();
return result.data;
};
// Poll every 5 seconds until processing is complete
return new Promise((resolve) => {
const interval = setInterval(async () => {
const video = await checkStatus();
console.log(`Processing status: ${video.file.status}`);
if (video.file.status === 'ready') {
clearInterval(interval);
resolve(video);
} else if (video.file.status === 'error') {
clearInterval(interval);
throw new Error('Video processing failed');
}
}, 5000);
});
};// Get video details and streaming URLs
const getVideoDetails = async (videoId) => {
const response = await fetch(`https://api.rixl.com/videos/${videoId}`, {
headers: {
'X-API-Key': 'YOUR_PROJECT_API_KEY'
}
});
const result = await response.json();
const video = result.data;
return {
id: video.id,
duration: video.duration,
width: video.width,
height: video.height,
streamingUrl: video.file.url,
thumbnailUrl: `https://cdn.rixl.com/${video.id}/thumbnail.jpg`,
status: video.file.status,
createdAt: video.created_at
};
};Real-World Use Cases
Video Streaming Platform
Netflix-style streaming with adaptive quality, progress tracking, and global delivery.
Live Event Streaming
Professional broadcasts with multiple quality levels and real-time delivery.
Social Media Integration
Seamlessly embed videos on social platforms with mobile-ready encoding.
E-Learning Platforms
Deliver educational content with fast load times and reliable playback.
Marketing & Advertising
High-impact video ads with instant delivery and global reach.
Enterprise Video Solutions
Secure and scalable video infrastructure for internal and external use.
Performance Benefits
Adaptive Streaming
Automatic quality adjustment based on connection speed prevents buffering.
Global CDN
200+ edge locations ensure instant video delivery worldwide.
Smart Compression
Optimal encoding reduces file sizes while maintaining visual quality.
What's Next?
Ready to stream your videos? Choose your approach:
Upload Your First Video
See HLS streaming and adaptive quality in action with our dashboard.
React Integration
Add the Video component with progress tracking to your application.
API Implementation
Build custom video workflows with our comprehensive REST API.
Ready to stream?
Start with our Video Upload Guide to see HLS streaming in action, or jump into the React Component Guide to add professional video players to your application. For custom workflows, explore our API Documentation.