İlgili Araçlar
M3U8 Online Player'ı tamamlayabilecek ilgili araçlar ve hizmetler.
Streaming Araçları
1. FFmpeg
Açıklama: Video encoding ve decoding için güçlü multimedya dönüştürme aracı.
Özellikler:
- Video format dönüştürme
- HLS/M3U8 encoding
- Video sıkıştırma
- Ses çıkarma
Kullanım:
# Video'yu M3U8'e dönüştür
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 10 -hls_list_size 0 output.m3u8
# Farklı kalitelerde playlist oluştur
ffmpeg -i input.mp4 \
-c:v libx264 -b:v 1000k -c:a aac -b:a 128k -f hls -hls_time 10 -hls_list_size 0 output_1000k.m3u8 \
-c:v libx264 -b:v 500k -c:a aac -b:a 96k -f hls -hls_time 10 -hls_list_size 0 output_500k.m3u8
2. HLS.js
Açıklama: Tarayıcıda HLS stream'lerini oynatmak için JavaScript kütüphanesi.
Özellikler:
- Native HLS desteği
- Adaptive bitrate streaming
- Hata kurtarma
- Cross-browser uyumluluğu
Kullanım:
import Hls from 'hls.js';
const video = document.getElementById('video');
const hls = new Hls();
hls.loadSource('https://example.com/stream.m3u8');
hls.attachMedia(video);
3. Video.js
Açıklama: Özelleştirilebilir HTML5 video player framework'ü.
Özellikler:
- Plugin ekosistemi
- Responsive tasarım
- Erişilebilirlik desteği
- Çoklu format desteği
Kullanım:
import videojs from 'video.js';
const player = videojs('my-video', {
controls: true,
responsive: true,
fluid: true,
});
Dönüştürme Araçları
1. HandBrake
Açıklama: Açık kaynak video dönüştürme uygulaması.
Özellikler:
- Kullanıcı dostu GUI
- Çeşitli cihazlar için preset'ler
- Toplu işlem
- Kalite kontrolü
Kullanım:
- handbrake.fr adresinden indirin
- Uygun preset'i seçin
- Çıktı formatını H.264 olarak ayarlayın
- Video dosyasını dönüştürün
2. Shaka Player
Açıklama: Adaptive streaming için JavaScript kütüphanesi.
Özellikler:
- DASH ve HLS desteği
- DRM desteği
- Çevrimdışı oynatma
- Gelişmiş özellikler
Kullanım:
import shaka from 'shaka-player/dist/shaka-player.compiled.js';
const video = document.getElementById('video');
const player = new shaka.Player(video);
player.load('https://example.com/stream.m3u8');
3. JW Player
Açıklama: Ticari video streaming platformu.
Özellikler:
- Cloud hosting
- Analytics
- Monetizasyon
- Özel markalama
Kullanım:
jwplayer('myElement').setup({
file: 'https://example.com/stream.m3u8',
width: 640,
height: 360,
});
Sunucu Araçları
1. Nginx
Açıklama: HLS streaming için kullanılabilecek web sunucusu.
Konfigürasyon:
location /hls/ {
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
location ~ \.(m3u8)$ {
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
}
2. Apache HTTP Server
Açıklama: HLS desteği olan popüler web sunucusu.
Konfigürasyon:
<Directory "/var/www/hls">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<Files "*.m3u8">
Header set Cache-Control "no-cache"
Header set Access-Control-Allow-Origin "*"
</Files>
</Directory>
3. Node.js ile Express
Açıklama: HLS streaming için JavaScript sunucusu.
Implementasyon:
const express = require('express');
const app = express();
app.use('/hls', express.static('hls-files'));
app.get('/stream/:id', (req, res) => {
res.sendFile(`hls-files/${req.params.id}.m3u8`);
});
app.listen(3000);
Monitoring Araçları
1. FFprobe
Açıklama: FFmpeg ile birlikte gelen medya analiz aracı.
Kullanım:
# M3U8 dosyasını analiz et
ffprobe -v quiet -print_format json -show_format -show_streams input.m3u8
# Süre ve bitrate kontrolü
ffprobe -v quiet -show_entries format=duration,bit_rate -of csv=p=0 input.m3u8
2. MediaInfo
Açıklama: Kapsamlı medya bilgi analiz aracı.
Özellikler:
- Detaylı medya bilgileri
- Çoklu format desteği
- Komut satırı ve GUI
- Çeşitli formatlara export
Kullanım:
# Dosyayı analiz et
mediainfo input.m3u8
# XML'e export et
mediainfo --Output=XML input.m3u8
3. HLS Analyzer
Açıklama: HLS stream'lerini analiz etmek için online araç.
Özellikler:
- Playlist doğrulama
- Segment analizi
- Kalite kontrolü
- Performans metrikleri
Kullanım:
- hls-analyzer.com adresini ziyaret edin
- M3U8 URL'sini girin
- Sonuçları analiz edin
Test Araçları
1. HLS Test Suite
Açıklama: HLS doğrulaması için test koleksiyonu.
Özellikler:
- Otomatik test
- Uyumluluk kontrolü
- Performans testi
- Hata simülasyonu
Kullanım:
# Test suite'i yükle
npm install -g hls-test-suite
# Testi çalıştır
hls-test-suite test-stream.m3u8
2. Stream Tester
Açıklama: Video stream test aracı.
Özellikler:
- Yük testi
- Kalite izleme
- Hata tespiti
- Performans metrikleri
Kullanım:
const StreamTester = require('stream-tester');
const tester = new StreamTester({
url: 'https://example.com/stream.m3u8',
duration: 300, // 5 dakika
quality: 'auto',
});
tester.start();
3. Video Quality Analyzer
Açıklama: Video kalitesini analiz etmek için araç.
Özellikler:
- PSNR hesaplama
- SSIM analizi
- Bitrate analizi
- Frame analizi
Kullanım:
# Kalite analizi
vqa analyze input.m3u8 --reference reference.mp4
# Rapor oluştur
vqa report --format html --output quality-report.html
Geliştirme Araçları
1. HLS Generator
Açıklama: HLS playlist oluşturmak için araç.
Özellikler:
- Otomatik segmentasyon
- Çoklu kalite
- Özel ayarlar
- Toplu işlem
Kullanım:
# Video'dan HLS oluştur
hls-generator input.mp4 --output-dir ./hls --qualities 720p,480p,360p
# Özel ayarlar
hls-generator input.mp4 --segment-time 10 --playlist-size 5
2. M3U8 Parser
Açıklama: M3U8 dosyalarını parse etmek için kütüphane.
Özellikler:
- Playlist parse etme
- Metadata çıkarma
- Format doğrulama
- Playlist değiştirme
Kullanım:
const M3U8Parser = require('m3u8-parser');
const parser = new M3U8Parser();
parser.push('#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:10');
parser.end();
console.log(parser.manifest);
3. HLS Validator
Açıklama: HLS stream doğrulama aracı.
Özellikler:
- Format doğrulama
- Uyumluluk kontrolü
- Hata raporlama
- En iyi uygulamalar
Kullanım:
# Stream doğrula
hls-validator https://example.com/stream.m3u8
# Özel kurallarla doğrula
hls-validator --rules custom-rules.json stream.m3u8
CDN Araçları
1. Cloudflare
Açıklama: Streaming desteği olan global CDN.
Özellikler:
- Global edge lokasyonları
- DDoS koruması
- SSL/TLS
- Cache optimizasyonu
Konfigürasyon:
// HLS için Cloudflare Workers
addEventListener('fetch', (event) => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const url = new URL(request.url);
if (url.pathname.endsWith('.m3u8')) {
// Özel HLS işleme
}
}
2. AWS CloudFront
Açıklama: Streaming desteği olan Amazon CDN'i.
Özellikler:
- Global dağıtım
- Origin failover
- Özel başlıklar
- Gerçek zamanlı metrikler
Konfigürasyon:
# CloudFormation template
Resources:
CloudFrontDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- DomainName: example.com
Id: HLSOrigin
CustomOriginConfig:
HTTPPort: 80
HTTPSPort: 443
OriginProtocolPolicy: https-only
3. KeyCDN
Açıklama: Performansa odaklanan CDN.
Özellikler:
- HTTP/2 desteği
- Brotli sıkıştırma
- Gerçek zamanlı analitik
- Özel başlıklar
Kullanım:
# Cache'i temizle
curl -X DELETE "https://api.keycdn.com/zones/purge/{zone_id}.json" \
-H "Authorization: Bearer {api_key}" \
-d '{"urls":["https://example.com/stream.m3u8"]}'
Analitik Araçları
1. Google Analytics
Açıklama: Video takibi için analitik platform.
Özellikler:
- Video etkileşimi
- Kullanıcı davranışı
- Performans metrikleri
- Özel olaylar
Implementasyon:
// Video olaylarını takip et
gtag('event', 'video_play', {
video_title: 'Stream Başlığı',
video_duration: 300,
video_percent: 25,
});
2. Adobe Analytics
Açıklama: Kurumsal analitik platform.
Özellikler:
- Gelişmiş segmentasyon
- Gerçek zamanlı raporlama
- Özel metrikler
- Entegrasyon yetenekleri
Kullanım:
// Video olaylarını takip et
s.trackVideo({
name: 'Stream Başlığı',
length: 300,
playerID: 'm3u8-player',
milestone: 25,
});
3. Wistia
Açıklama: Analitik ile video pazarlama platformu.
Özellikler:
- Video hosting
- Etkileşim takibi
- Heatmap'ler
- Lead üretimi
Entegrasyon:
// Wistia player entegrasyonu
wistiaEmbed = Wistia.embed('video-id', {
videoOptions: {
autoPlay: false,
controlsVisibleOnLoad: true,
},
});
Güvenlik Araçları
1. DRM Çözümleri
Açıklama: Dijital Haklar Yönetimi çözümleri.
Özellikler:
- İçerik koruması
- Lisans yönetimi
- Multi-DRM desteği
- Analitik
Implementasyon:
// DRM konfigürasyonu
const drmConfig = {
'com.widevine.alpha': {
serverURL: 'https://license.example.com/widevine',
},
'com.microsoft.playready': {
serverURL: 'https://license.example.com/playready',
},
};
2. Token Kimlik Doğrulama
Açıklama: Streaming için kimlik doğrulama sistemi.
Özellikler:
- JWT token'ları
- Zaman tabanlı erişim
- Kullanıcı doğrulama
- Güvenli teslimat
Implementasyon:
// Token doğrulama
function validateToken(token) {
try {
const decoded = jwt.verify(token, secretKey);
return decoded.exp > Date.now() / 1000;
} catch (error) {
return false;
}
}
3. Geo-blocking
Açıklama: Coğrafi konuma dayalı erişim kısıtlaması.
Özellikler:
- IP tabanlı engelleme
- Ülke kısıtlamaları
- Bölgeye özel içerik
- Uyumluluk desteği
Implementasyon:
// Geo-blocking kontrolü
function checkGeoAccess(ip) {
const country = getCountryFromIP(ip);
const allowedCountries = ['TR', 'US', 'CA', 'GB'];
return allowedCountries.includes(country);
}
Optimizasyon Araçları
1. Video Sıkıştırma
Açıklama: Video sıkıştırma araçları.
Özellikler:
- Çoklu codec'ler
- Kalite optimizasyonu
- Toplu işlem
- Özel preset'ler
Kullanım:
# FFmpeg ile sıkıştırma
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
# Web için optimizasyon
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 22 -c:a aac -b:a 128k -movflags +faststart output.mp4
2. Adaptive Bitrate
Açıklama: Adaptif streaming teknolojisi.
Özellikler:
- Çoklu kalite seviyeleri
- Otomatik geçiş
- Bant genişliği optimizasyonu
- Kullanıcı deneyimi
Implementasyon:
// Adaptive bitrate mantığı
function selectQuality(bandwidth, bufferHealth) {
if (bandwidth > 5000 && bufferHealth > 0.8) {
return 'high';
} else if (bandwidth > 2000 && bufferHealth > 0.5) {
return 'medium';
} else {
return 'low';
}
}
3. Cache Stratejileri
Açıklama: Optimal performans için cache stratejileri.
Özellikler:
- Edge caching
- Tarayıcı caching
- CDN optimizasyonu
- Cache invalidation
Implementasyon:
# Nginx cache konfigürasyonu
location ~* \.(m3u8|ts)$ {
expires 1h;
add_header Cache-Control "public, immutable";
add_header Access-Control-Allow-Origin "*";
}
Bu araçlar, M3U8 streaming'inizi daha etkili bir şekilde optimize etmenize ve yönetmenize yardımcı olabilir.