diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs b/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs index 1312d49ce..3d4da1e15 100644 --- a/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs +++ b/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs @@ -554,6 +554,8 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder throw new ArgumentNullException("outputPath"); } + var offsetParam = offset.Ticks > 0 ? "-ss " + offset.TotalSeconds + " " : string.Empty; + var process = new Process { StartInfo = new ProcessStartInfo @@ -564,7 +566,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder CreateNoWindow = true, UseShellExecute = false, FileName = FFMpegPath, - Arguments = string.Format("-i \"{0}\" \"{1}\"", inputPath, outputPath), + Arguments = string.Format("{0}-i \"{1}\" \"{2}\"", offsetParam, inputPath, outputPath), WindowStyle = ProcessWindowStyle.Hidden, ErrorDialog = false } @@ -593,7 +595,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder throw; } - process.StandardError.BaseStream.CopyToAsync(logFileStream); + var logTask = process.StandardError.BaseStream.CopyToAsync(logFileStream); var ranToCompletion = process.WaitForExit(60000); @@ -606,6 +608,8 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder process.Kill(); process.WaitForExit(1000); + + await logTask.ConfigureAwait(false); } catch (Win32Exception ex) { @@ -621,6 +625,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder } finally { + logFileStream.Dispose(); _subtitleExtractionResourcePool.Release(); } |
