|
|
@ -230,14 +230,29 @@ namespace ErsatzTV.Core.FFmpeg |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public FFmpegProcessBuilder WithMetadata(Channel channel) |
|
|
|
public FFmpegProcessBuilder WithMetadata(Channel channel, Option<MediaStream> maybeAudioStream) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if (channel.StreamingMode == StreamingMode.TransportStream) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
_arguments.AddRange(new[] { "-map_metadata", "-1" }); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (MediaStream audioStream in maybeAudioStream) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(audioStream.Language)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
_arguments.AddRange(new[] { "-metadata:s:a:0", $"language={audioStream.Language}" }); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var arguments = new List<string> |
|
|
|
var arguments = new List<string> |
|
|
|
{ |
|
|
|
{ |
|
|
|
"-metadata", "service_provider=\"ErsatzTV\"", |
|
|
|
"-metadata", "service_provider=\"ErsatzTV\"", |
|
|
|
"-metadata", $"service_name=\"{channel.Name}\"" |
|
|
|
"-metadata", $"service_name=\"{channel.Name}\"" |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
_arguments.AddRange(arguments); |
|
|
|
_arguments.AddRange(arguments); |
|
|
|
|
|
|
|
|
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -323,7 +338,6 @@ namespace ErsatzTV.Core.FFmpeg |
|
|
|
new[] |
|
|
|
new[] |
|
|
|
{ |
|
|
|
{ |
|
|
|
"-c:a", playbackSettings.AudioCodec, |
|
|
|
"-c:a", playbackSettings.AudioCodec, |
|
|
|
"-map_metadata", "-1", |
|
|
|
|
|
|
|
"-movflags", "+faststart", |
|
|
|
"-movflags", "+faststart", |
|
|
|
"-muxdelay", "0", |
|
|
|
"-muxdelay", "0", |
|
|
|
"-muxpreload", "0" |
|
|
|
"-muxpreload", "0" |
|
|
|