mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
Lecture vidéo : son garanti sur toutes les chaînes, zapping et démarrages accélérés
Son manquant sur certaines chaînes : - Nouvelle route GET /api/live/<id>/turbo.ts pour le player web : vidéo copiée (-c:v copy), audio TOUJOURS réencodé en AAC. mpegts.js ne démuxe que l'AAC/MP3 : les chaînes en AC-3/E-AC-3/MP2 passaient par le proxy brut → image sans son, et le fallback HLS côté client ne couvrait pas les codecs démuxés mais non décodables par le navigateur (MP2) - getLiveStreamUrlTs pointe sur la route turbo ; le proxy brut /api/live/<id>.ts reste inchangé pour le scheduler d'enregistrement - FFmpeg turbo tué dès que le client zappe (onCancel) ; stderr redacté - Le fallback client (_hlsEquivalent) reconnaît le nouveau format d'URL et reste en filet de sécurité Temps de chargement : - Players vendorisés mis à jour : hls.js 1.6.7 → 1.7.1, mpegts.js 1.7.3 → 1.8.2 - Live HLS et turbo : -fflags nobuffer + probesize/analyzeduration 1 Mo (sans borne, FFmpeg pouvait sonder plusieurs secondes avant le premier segment) - VOD : probesize 10 Mo → 5 Mo, analyzeduration 5 s → 2 s - Live 'high' : preset medium → veryfast (zerolatency déjà actif) ; lecture d'enregistrement : medium/crf18 → veryfast/crf20 (medium ne tenait pas le temps réel en 1080p sur CPU modeste) - waitForPlaylist : polling 500 ms → 100 ms - Suppression du cache-buster &v=timestamp qui re-téléchargeait player.html à chaque zap ; les .html sont servis en no-cache côté serveur pour garder la fraîcheur après déploiement - mpegts.js : liveBufferLatencyChasing activé en profil « fast » — les micro-coupures ne font plus dériver la lecture derrière le direct Validé : dart analyze (0 issue) + dart test (48/48) sur bin/, syntaxe JS vérifiée. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015oEu9QayWsw7hCKhenxgVa
This commit is contained in:
9 files changed
+136
-27
No files matched your search
@@ -176,8 +176,11 @@ class XtreamService {
|
||||
/// Faster zapping on compatible players (mpegts.js)
|
||||
String getLiveStreamUrlTs(String streamId) {
|
||||
if (_currentPlaylist == null) throw Exception('No playlist configured');
|
||||
// Backend route injects the Xtream credentials server-side
|
||||
return '$_backendBaseUrl/api/live/$streamId.ts';
|
||||
// Route « turbo » : vidéo copiée, audio réencodé en AAC côté serveur.
|
||||
// Le proxy brut ($_backendBaseUrl/api/live/$streamId.ts) livrait l'audio
|
||||
// d'origine — AC-3/E-AC-3/MP2 que mpegts.js ne décode pas → chaînes
|
||||
// muettes. Il reste utilisé tel quel par le scheduler d'enregistrement.
|
||||
return '$_backendBaseUrl/api/live/$streamId/turbo.ts';
|
||||
}
|
||||
|
||||
/// Generate stream URL for VOD (movies)
|
||||
|
||||
Reference in new issue
Block a user