Kötü Cihazlarda Donma Sorunu Çözümü
HLS segment süresini 10 saniye → 6 saniye düşürerek kötü cihazlarda (düşük RAM, eski telefonlar) donma sorununu çözmek.
backBufferLength: 0 ile birlikte kullanınca optimal sonuçHIGH (320k) - Ana playlist, eski segmentler
LOW (64k) - Yeni oluşturulmuş klasör
ULTRALOW (32k) - Yeni oluşturulmuş klasör
enc.bin, enc.keyinfo - Dokunulmayacak (şifreleme)
En güvenli yöntem. Kullanıcı dinlerken bile sorun çıkarmaz.
storage/.../hls/27257/ ├── segment-000.ts (10s) ← ESKİ, ŞİMDİLİK DURUYOR ├── segment-001.ts (10s) ├── playlist.m3u8 (TARGETDURATION:10) ├── low/ │ ├── segment-*.ts │ └── playlist.m3u8 ├── ultralow/ │ ├── segment-*.ts │ └── playlist.m3u8 └── .tmp_migrate/ ├── segment-000.ts (6s) ← YENİ ├── segment-001.ts (6s) ├── segment-002.ts (6s) ├── playlist.m3u8.new (TARGETDURATION:6) ├── low/ │ └── segment-*.ts (6s) └── ultralow/ └── segment-*.ts (6s)
.tmp_migrate/ klasörü oluşturuluyorTARGETDURATION:10 → 6 değişikliğituufi.com_:psaserv 644/755Worker 1: 0-8,128 şarkıWorker 2: 8,129-16,257 şarkıWorker 3: 16,258-24,386 şarkıWorker 4: 24,387-32,514 şarkı# Worker logları tail -f /tmp/hls_segment_migrate_worker*.log # Tamamlanan şarkı sayısı find storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d | wc -l
df -hmv komutu (0.001s)chown tuufi.com_:psaservSorun çıkarsa eski duruma nasıl döneriz?
# Worker'ları durdur
pkill -f "hls:migrate-segments"
# Geçici klasörleri temizle
find storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d -exec rm -rf {} +
# Eski segmentler hala yerinde, hiçbir şey değişmedi ✅
mkdir -p /tmp/hls_backup_10s # İlk 100 şarkıyı yedekle # Sorun olursa geri yükle
php artisan hls:migrate-segments --limit=10 --dry-run # Dry-run: Sadece göster, işlem yapma # Sonuç: 10 şarkıda ne olacağını gör
php artisan tenants:run hls:migrate-segments --tenants=1001 --option="limit=10" # 10 şarkıda gerçek migrasyon # Sonuç kontrol: Başarılı mı?
# Worker 1 nohup php artisan tenants:run hls:migrate-segments --tenants=1001 --option="offset=0" --option="limit=8129" > /tmp/hls_segment_migrate_worker1.log 2>&1 & # Worker 2 nohup php artisan tenants:run hls:migrate-segments --tenants=1001 --option="offset=8129" --option="limit=8129" > /tmp/hls_segment_migrate_worker2.log 2>&1 & # Worker 3 nohup php artisan tenants:run hls:migrate-segments --tenants=1001 --option="offset=16258" --option="limit=8129" > /tmp/hls_segment_migrate_worker3.log 2>&1 & # Worker 4 nohup php artisan tenants:run hls:migrate-segments --tenants=1001 --option="offset=24387" --option="limit=8128" > /tmp/hls_segment_migrate_worker4.log 2>&1 & # Logları izle tail -f /tmp/hls_segment_migrate_worker*.log
# Kaç şarkı tamamlandı? find storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d | wc -l # Worker'lar çalışıyor mu? ps aux | grep "hls:migrate-segments" | grep -v grep
MigrateHlsSegmentsCommand# Rastgele 10 şarkıda TARGETDURATION kontrol
for i in {1..10}; do
SONG_ID=$(shuf -i 1-40000 -n 1)
grep "TARGETDURATION" storage/tenant1001/app/public/muzibu/hls/$SONG_ID/playlist.m3u8
done
# Hepsi "6" olmalı
#EXT-X-TARGETDURATION:6# Rastgele şarkıda segment sayısı ls -1 storage/tenant1001/app/public/muzibu/hls/27257/segment-*.ts | wc -l # Önceki ~20 ise, şimdi ~34 olmalı (60% artış)
# .tmp_migrate/ klasörü kalmamalı find storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d | wc -l # Sonuç: 0 (sıfır) olmalı
# LOW segment ortalama boyut
du -sh storage/tenant1001/app/public/muzibu/hls/27257/low/segment-*.ts | awk '{sum+=$1; count++} END {print sum/count}'
# Beklenen: ~23KB (önceki ~38KB)
# Worker loglarından çıkar grep "✅ Sonuç:" /tmp/hls_segment_migrate_worker*.log # Örnek: ✅ Sonuç: 8129 başarılı, 5 başarısız
# Toplam HLS klasör boyutu (önce/sonra) du -sh storage/tenant1001/app/public/muzibu/hls/ # Beklenen: ~10-15% azalma (küçük segmentler = az overhead)
# .tmp_migrate/ kalan şarkılar = başarısız find storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d | sed 's|.*/hls/||' | sed 's|/.*||' # Bu song ID'leri manuel kontrol et
# Eğer .tmp_migrate/ kaldıysa (başarısız), manuel temizle
find storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d -exec rm -rf {} +
# ⚠️ Dikkat: Bu şarkılarda migrasyon YAPILMAMIŞ demektir, eski 10s segmentler hala var
mkdir -p /var/log/hls_migration/2026-02-19 mv /tmp/hls_segment_migrate_worker*.log /var/log/hls_migration/2026-02-19/ gzip /var/log/hls_migration/2026-02-19/*.log
failed_migrations.txt dosyasına kaydetfind storage/tenant1001/app/public/muzibu/hls -name ".tmp_migrate" -type d | sed 's|.*/hls/||' | sed 's|/.*||' > failed_migrations.txt # Manuel inceleme için
tail -f storage/logs/laravel.log | grep "HLS" # 404 veya 500 hatası var mı?
a-html.txt buffer raporu kontrol et:
public/readme/2026/02/[GÜN]/hls-6s-segment-migrasyon/v2/