aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Encoder
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.MediaEncoding/Encoder')
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs13
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/EncodingUtils.cs20
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs34
3 files changed, 30 insertions, 37 deletions
diff --git a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs
index 80bbc87e3..7654ec1d7 100644
--- a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs
@@ -827,8 +827,16 @@ namespace MediaBrowser.MediaEncoding.Encoder
return string.Format(" -b:v {0}", bitrate.Value.ToString(UsCulture));
}
+ if (string.Equals(videoCodec, "libx264", StringComparison.OrdinalIgnoreCase))
+ {
+ // h264
+ return string.Format(" -maxrate {0} -bufsize {1}",
+ bitrate.Value.ToString(UsCulture),
+ (bitrate.Value * 2).ToString(UsCulture));
+ }
+
// h264
- return string.Format(" -maxrate {0} -bufsize {1}",
+ return string.Format(" -b:v {0} -maxrate {0} -bufsize {1}",
bitrate.Value.ToString(UsCulture),
(bitrate.Value * 2).ToString(UsCulture));
}
@@ -896,7 +904,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
}
else
{
- args += "-map -0:v";
+ // No known video stream
+ args += "-vn";
}
if (state.AudioStream != null)
diff --git a/MediaBrowser.MediaEncoding/Encoder/EncodingUtils.cs b/MediaBrowser.MediaEncoding/Encoder/EncodingUtils.cs
index cec272b39..e547f2fae 100644
--- a/MediaBrowser.MediaEncoding/Encoder/EncodingUtils.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/EncodingUtils.cs
@@ -8,25 +8,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
{
public static string GetInputArgument(List<string> inputFiles, MediaProtocol protocol)
{
- if (protocol == MediaProtocol.Http)
- {
- var url = inputFiles.First();
-
- return string.Format("\"{0}\"", url);
- }
- if (protocol == MediaProtocol.Rtmp)
- {
- var url = inputFiles.First();
-
- return string.Format("\"{0}\"", url);
- }
- if (protocol == MediaProtocol.Rtsp)
- {
- var url = inputFiles.First();
-
- return string.Format("\"{0}\"", url);
- }
- if (protocol == MediaProtocol.Udp)
+ if (protocol != MediaProtocol.File)
{
var url = inputFiles.First();
diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
index 89730a11f..6a5945b76 100644
--- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
@@ -533,8 +533,10 @@ namespace MediaBrowser.MediaEncoding.Encoder
probeSize = probeSize + " " + analyzeDuration;
probeSize = probeSize.Trim();
+ var forceEnableLogging = request.Protocol != MediaProtocol.File;
+
return GetMediaInfoInternal(GetInputArgument(inputFiles, request.Protocol), request.InputPath, request.Protocol, extractChapters,
- probeSize, request.MediaType == DlnaProfileType.Audio, request.VideoType, cancellationToken);
+ probeSize, request.MediaType == DlnaProfileType.Audio, request.VideoType, forceEnableLogging, cancellationToken);
}
/// <summary>
@@ -577,14 +579,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
/// <summary>
/// Gets the media info internal.
/// </summary>
- /// <param name="inputPath">The input path.</param>
- /// <param name="primaryPath">The primary path.</param>
- /// <param name="protocol">The protocol.</param>
- /// <param name="extractChapters">if set to <c>true</c> [extract chapters].</param>
- /// <param name="probeSizeArgument">The probe size argument.</param>
- /// <param name="isAudio">if set to <c>true</c> [is audio].</param>
- /// <param name="videoType">Type of the video.</param>
- /// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{MediaInfoResult}.</returns>
private async Task<MediaInfo> GetMediaInfoInternal(string inputPath,
string primaryPath,
@@ -593,6 +587,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
string probeSizeArgument,
bool isAudio,
VideoType videoType,
+ bool forceEnableLogging,
CancellationToken cancellationToken)
{
var args = extractChapters
@@ -614,7 +609,14 @@ namespace MediaBrowser.MediaEncoding.Encoder
EnableRaisingEvents = true
});
- _logger.Debug("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
+ if (forceEnableLogging)
+ {
+ _logger.Info("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
+ }
+ else
+ {
+ _logger.Debug("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
+ }
using (var processWrapper = new ProcessWrapper(process, this, _logger))
{
@@ -1248,8 +1250,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
lock (_runningProcesses)
{
proceses = _runningProcesses.ToList();
+ _runningProcesses.Clear();
}
- _runningProcesses.Clear();
foreach (var process in proceses)
{
@@ -1319,16 +1321,16 @@ namespace MediaBrowser.MediaEncoding.Encoder
{
}
- lock (_mediaEncoder._runningProcesses)
- {
- _mediaEncoder._runningProcesses.Remove(this);
- }
-
DisposeProcess(process);
}
private void DisposeProcess(IProcess process)
{
+ lock (_mediaEncoder._runningProcesses)
+ {
+ _mediaEncoder._runningProcesses.Remove(this);
+ }
+
try
{
process.Dispose();