e23d1a23be
Transcode state lives only in the process that started ffmpeg, so a pod restart drops every in-flight HLS stream with no way for a peer to pick it up. - add ITranscodeSessionStore plus the TranscodeSession and LiveStreamSession records - add RedisTranscodeSessionStore with TTL leases and an atomic Lua takeover script - add NullTranscodeSessionStore for single-instance deployments - pick the store from Jellyfin:TranscodeStore:RedisConnectionString at startup
20 lines
677 B
C#
20 lines
677 B
C#
namespace MediaBrowser.Controller.MediaEncoding;
|
|
|
|
/// <summary>
|
|
/// Configuration options for the transcode session store.
|
|
/// </summary>
|
|
public sealed class TranscodeStoreOptions
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the Redis connection string.
|
|
/// A <c>null</c> or empty value indicates single-instance mode, where
|
|
/// <see cref="NullTranscodeSessionStore"/> is used instead of a Redis-backed store.
|
|
/// </summary>
|
|
public string? RedisConnectionString { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the duration in seconds for which a transcoding session lease is valid.
|
|
/// </summary>
|
|
public int LeaseDurationSeconds { get; set; } = 30;
|
|
}
|