mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
feat: Implement IPTV settings management including streaming, buffer, EPG, and player preferences, and add HLS handler.
This commit is contained in:
1 parent
e83fa445b1
commit
e3f5bc6e66
2 files changed
+18
-15
No files matched your search
+16
-13
@@ -168,30 +168,33 @@ Handler createStreamInitHandler() {
|
||||
'-bufsize', '5000k',
|
||||
]);
|
||||
} else {
|
||||
// VOD: Higher quality transcoding
|
||||
// VOD: Use ultrafast preset to prevent buffer stalls
|
||||
// FFmpeg must transcode FASTER than realtime to keep the buffer full
|
||||
ffmpegArgs.addAll([
|
||||
'-c:v', 'libx264',
|
||||
'-preset', 'fast',
|
||||
'-tune', 'film',
|
||||
'-profile:v', 'high',
|
||||
'-level', '4.1',
|
||||
'-preset', 'ultrafast', // CRITICAL: Fast encoding to prevent buffer stalls
|
||||
'-tune', 'fastdecode', // Optimize for fast decoding in browser
|
||||
'-profile:v', 'main', // Good compatibility, better than baseline for VOD
|
||||
'-level', '4.0',
|
||||
'-pix_fmt', 'yuv420p',
|
||||
'-g', '48',
|
||||
'-g', '48', // Keyframe every 2s at 24fps
|
||||
'-threads', '0', // Use all available CPU cores
|
||||
]);
|
||||
|
||||
if (quality == 'low') {
|
||||
ffmpegArgs.addAll([
|
||||
'-vf', 'scale=-2:480',
|
||||
'-b:v', '1500k',
|
||||
'-maxrate', '1500k',
|
||||
'-bufsize', '3000k',
|
||||
'-b:v', '1000k',
|
||||
'-maxrate', '1200k',
|
||||
'-bufsize', '2000k',
|
||||
]);
|
||||
} else {
|
||||
// High quality but still fast enough to prevent stalls
|
||||
ffmpegArgs.addAll([
|
||||
'-b:v', '6000k',
|
||||
'-maxrate', '8000k',
|
||||
'-bufsize', '12000k',
|
||||
'-crf', '18',
|
||||
'-b:v', '2500k', // Reduced from 6000k for faster encoding
|
||||
'-maxrate', '3000k', // Reduced from 8000k
|
||||
'-bufsize', '5000k', // Reduced from 12000k
|
||||
'-crf', '23', // Slightly lower quality but much faster
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,8 +106,8 @@ class IptvSettings {
|
||||
this.showClock = false,
|
||||
this.preferredAspectRatio = 'contain',
|
||||
this.playerType = PlayerType.standard,
|
||||
// VOD defaults
|
||||
this.forceVodTranscoding = false,
|
||||
// VOD defaults - true by default to avoid 509 errors from IPTV servers
|
||||
this.forceVodTranscoding = true,
|
||||
});
|
||||
|
||||
IptvSettings copyWith({
|
||||
|
||||
Reference in new issue
Block a user