|
|
@ -113,19 +113,59 @@ namespace MediaBrowser.Api.HttpHandlers
|
|
|
|
audioTranscodeParams.Add("-ab " + bitrate.Value);
|
|
|
|
audioTranscodeParams.Add("-ab " + bitrate.Value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (AudioChannels.HasValue)
|
|
|
|
int? channels = GetNumAudioChannelsParam();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (channels.HasValue)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
audioTranscodeParams.Add("-ac " + AudioChannels.Value);
|
|
|
|
audioTranscodeParams.Add("-ac " + channels.Value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (AudioSampleRate.HasValue)
|
|
|
|
int? sampleRate = GetSampleRateParam();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (sampleRate.HasValue)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
audioTranscodeParams.Add("-ar " + AudioSampleRate.Value);
|
|
|
|
audioTranscodeParams.Add("-ar " + sampleRate.Value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
audioTranscodeParams.Add("-f " + outputFormat);
|
|
|
|
audioTranscodeParams.Add("-f " + outputFormat);
|
|
|
|
|
|
|
|
|
|
|
|
return "-i \"" + LibraryItem.Path + "\" -vn " + string.Join(" ", audioTranscodeParams.ToArray()) + " -";
|
|
|
|
return "-i \"" + LibraryItem.Path + "\" -vn " + string.Join(" ", audioTranscodeParams.ToArray()) + " -";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Gets the number of audio channels to specify on the command line
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private int? GetNumAudioChannelsParam()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// If the user requested a max number of channels
|
|
|
|
|
|
|
|
if (AudioChannels.HasValue)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// Only specify the param if we're going to downmix
|
|
|
|
|
|
|
|
if (AudioChannels.Value < LibraryItem.Channels)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return AudioChannels.Value;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Gets the number of audio channels to specify on the command line
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private int? GetSampleRateParam()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// If the user requested a max value
|
|
|
|
|
|
|
|
if (AudioSampleRate.HasValue)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// Only specify the param if we're going to downmix
|
|
|
|
|
|
|
|
if (AudioSampleRate.Value < LibraryItem.SampleRate)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return AudioSampleRate.Value;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|