|
|
|
@ -566,7 +566,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
|
|
|
|
|
|
|
private void AddSubtitles(StreamState state, IEnumerable<MediaStream> subtitles, StringBuilder builder)
|
|
|
|
|
{
|
|
|
|
|
var selectedIndex = state.SubtitleStream == null ? (int?)null : state.SubtitleStream.Index;
|
|
|
|
|
var selectedIndex = state.SubtitleStream == null || state.VideoRequest.SubtitleMethod != SubtitleDeliveryMethod.Hls ? (int?)null : state.SubtitleStream.Index;
|
|
|
|
|
|
|
|
|
|
foreach (var stream in subtitles)
|
|
|
|
|
{
|
|
|
|
@ -579,10 +579,11 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(name)) name = stream.Codec ?? "Unknown";
|
|
|
|
|
|
|
|
|
|
var url = string.Format("{0}/Subtitles/{1}/subtitles.m3u8?SegmentLength={2}",
|
|
|
|
|
var url = string.Format("{0}/Subtitles/{1}/subtitles.m3u8?SegmentLength={2}&api_key={3}",
|
|
|
|
|
state.Request.MediaSourceId,
|
|
|
|
|
stream.Index.ToString(UsCulture),
|
|
|
|
|
30.ToString(UsCulture));
|
|
|
|
|
30.ToString(UsCulture),
|
|
|
|
|
AuthorizationContext.GetAuthorizationInfo(Request).Token);
|
|
|
|
|
|
|
|
|
|
var line = string.Format(format,
|
|
|
|
|
name,
|
|
|
|
@ -827,7 +828,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
|
|
var keyFrameArg = string.Format(" -force_key_frames \"expr:gte(t,n_forced*{0})\"",
|
|
|
|
|
state.SegmentLength.ToString(UsCulture));
|
|
|
|
|
|
|
|
|
|
var hasGraphicalSubs = state.SubtitleStream != null && !state.SubtitleStream.IsTextSubtitleStream;
|
|
|
|
|
var hasGraphicalSubs = state.SubtitleStream != null && !state.SubtitleStream.IsTextSubtitleStream && state.VideoRequest.SubtitleMethod == SubtitleDeliveryMethod.Encode;
|
|
|
|
|
|
|
|
|
|
args += " " + GetVideoQualityParam(state, GetH264Encoder(state)) + keyFrameArg;
|
|
|
|
|
|
|
|
|
@ -853,7 +854,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|
|
|
|
|
|
|
|
|
private bool EnableCopyTs(StreamState state)
|
|
|
|
|
{
|
|
|
|
|
return state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream;
|
|
|
|
|
return state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream && state.VideoRequest.SubtitleMethod == SubtitleDeliveryMethod.Encode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override string GetCommandLineArguments(string outputPath, StreamState state, bool isEncoding)
|
|
|
|
|