feat: implement IPTV player screen with FFmpeg transcoding for live streams, playback position tracking, and dedicated settings

This commit is contained in:
Michael committed 2025-12-06 16:43:19 +01:00
1 parent 5f3dee5bc5
commit 1c65258ef0
3 files changed
+63 -28

No files matched your search

@@ -166,6 +166,15 @@ class IptvSettings {
}
}
/// Get transcoding mode string for FFmpeg URL parameter
String get modeString {
switch (transcodingMode) {
case TranscodingMode.disabled: return 'direct'; // Passthrough, 0% CPU
case TranscodingMode.forced: return 'transcode';
case TranscodingMode.auto: return 'auto';
}
}
// ===== Filter Methods =====
static List<String> _parseKeywords(String filter) {
+2 -1
View File
@@ -134,8 +134,9 @@ class _PlayerScreenState extends ConsumerState<PlayerScreen> {
ConnectionTimeout.medium => 'medium',
ConnectionTimeout.long => 'long',
};
final modeParam = settings.modeString; // direct, transcode, or auto
final streamEndpoint = '$baseUrl/api/stream/${widget.streamId}?url=$encodedUrl&quality=$qualityParam&buffer=$bufferParam&timeout=$timeoutParam';
final streamEndpoint = '$baseUrl/api/stream/${widget.streamId}?url=$encodedUrl&quality=$qualityParam&buffer=$bufferParam&timeout=$timeoutParam&mode=$modeParam';
debugPrint('PlayerScreen: Starting FFmpeg stream: $streamEndpoint');