|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
using MediaBrowser.Common.MediaInfo;
|
|
|
|
|
using MediaBrowser.Common.MediaInfo;
|
|
|
|
|
using MediaBrowser.Controller;
|
|
|
|
|
using MediaBrowser.Controller.Drawing;
|
|
|
|
|
using MediaBrowser.Controller.Dto;
|
|
|
|
@ -219,11 +219,6 @@ namespace MediaBrowser.Api.Playback.Progressive
|
|
|
|
|
args += " -ac " + channels.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (request.AudioSampleRate.HasValue)
|
|
|
|
|
{
|
|
|
|
|
args += " -ar " + request.AudioSampleRate.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var bitrate = GetAudioBitrateParam(state);
|
|
|
|
|
|
|
|
|
|
if (bitrate.HasValue)
|
|
|
|
@ -231,18 +226,24 @@ namespace MediaBrowser.Api.Playback.Progressive
|
|
|
|
|
args += " -ab " + bitrate.Value.ToString(UsCulture);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var volParam = string.Empty;
|
|
|
|
|
var volParam = string.Empty;
|
|
|
|
|
var AudioSampleRate = string.Empty;
|
|
|
|
|
|
|
|
|
|
// Boost volume to 200% when downsampling from 6ch to 2ch
|
|
|
|
|
if (channels.HasValue && channels.Value <= 2 && state.AudioStream.Channels.HasValue && state.AudioStream.Channels.Value > 5)
|
|
|
|
|
{
|
|
|
|
|
volParam = ",volume=2.000000";
|
|
|
|
|
}
|
|
|
|
|
// Boost volume to 200% when downsampling from 6ch to 2ch
|
|
|
|
|
if (channels.HasValue && channels.Value <= 2 && state.AudioStream.Channels.HasValue && state.AudioStream.Channels.Value > 5)
|
|
|
|
|
{
|
|
|
|
|
volParam = ",volume=2.000000";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
args += string.Format(" -af \"aresample=async=1000{0}\"", volParam);
|
|
|
|
|
if (state.Request.AudioSampleRate.HasValue)
|
|
|
|
|
{
|
|
|
|
|
AudioSampleRate= state.Request.AudioSampleRate.Value + ":";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return args;
|
|
|
|
|
}
|
|
|
|
|
args += string.Format(" -af \"aresample={0}async=1000{1}\"",AudioSampleRate, volParam);
|
|
|
|
|
|
|
|
|
|
return args;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the video bitrate to specify on the command line
|
|
|
|
|