aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-13 23:02:57 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-13 23:02:57 -0500
commit7771b89c6ad9f7496006ab0e9e82a8d127872ec3 (patch)
tree27753ec1d154ff8e6546bae3d764cb1f61121515
parent87c23f145c2154c6af8f24f06ce0788b85024767 (diff)
h264_qsv changes
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index d959d9e77..2a0c5e01f 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -349,6 +349,24 @@ namespace MediaBrowser.Api.Playback
}
}
+ // h264 (h264_qsv)
+ else if (string.Equals(videoCodec, "h264_qsv", StringComparison.OrdinalIgnoreCase))
+ {
+ switch (qualitySetting)
+ {
+ case EncodingQuality.HighSpeed:
+ param = "-preset 7";
+ break;
+ case EncodingQuality.HighQuality:
+ param = "-preset 4";
+ break;
+ case EncodingQuality.MaxQuality:
+ param = "-preset 1";
+ break;
+ }
+
+ }
+
// webm
else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
{
@@ -567,6 +585,11 @@ namespace MediaBrowser.Api.Playback
}
}
+ if (string.Equals(outputVideoCodec, "h264_qsv", StringComparison.OrdinalIgnoreCase))
+ {
+ filters[filters.Count - 1] += ":flags=fast_bilinear";
+ }
+
var output = string.Empty;
if (state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream)
@@ -1183,6 +1206,22 @@ namespace MediaBrowser.Api.Playback
return string.Format(" -b:v {0}", bitrate.Value.ToString(UsCulture));
}
+ // h264_qsv
+ if (string.Equals(videoCodec, "h264_qsv", StringComparison.OrdinalIgnoreCase))
+ {
+ if (hasFixedResolution)
+ {
+ if (isHls)
+ {
+ return string.Format(" -b:v {0} -maxrate ({0}*.80) -bufsize {0}", bitrate.Value.ToString(UsCulture));
+ }
+
+ return string.Format(" -b:v {0}", bitrate.Value.ToString(UsCulture));
+ }
+
+ return string.Format(" -b:v {0} -maxrate ({0}*1.2) -bufsize ({0}*2)", bitrate.Value.ToString(UsCulture));
+ }
+
// H264
if (hasFixedResolution)
{