switch to audio filter for volume

This commit is contained in:
Luke Pulverenti 2013-03-24 18:37:20 -04:00
parent 63e16a4d99
commit cb3089791e
2 changed files with 39 additions and 32 deletions

View file

@ -72,12 +72,6 @@ namespace MediaBrowser.Api.Playback.Hls
if (channels.HasValue)
{
args += " -ac " + channels.Value;
// Boost volume to 200% when downsampling from 6ch to 2ch
if (channels.Value <= 2 && state.AudioStream.Channels.HasValue && state.AudioStream.Channels.Value > 5)
{
args += " -vol 512";
}
}
if (state.Request.AudioSampleRate.HasValue)
@ -90,7 +84,15 @@ namespace MediaBrowser.Api.Playback.Hls
args += " -ab " + state.Request.AudioBitRate.Value;
}
args += " -af \"aresample=async=1000\"";
var volParam = 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";
}
args += string.Format(" -af \"aresample=async=1000,{0}\"", volParam);
return args;
}

View file

@ -184,36 +184,41 @@ namespace MediaBrowser.Api.Playback.Progressive
// Get the output codec name
var codec = GetAudioCodec(request);
if (codec.Equals("copy", StringComparison.OrdinalIgnoreCase))
{
return "-acodec copy";
}
var args = "-acodec " + codec;
// If we're encoding audio, add additional params
if (!codec.Equals("copy", StringComparison.OrdinalIgnoreCase))
// Add the number of audio channels
var channels = GetNumAudioChannelsParam(request, state.AudioStream);
if (channels.HasValue)
{
// Add the number of audio channels
var channels = GetNumAudioChannelsParam(request, state.AudioStream);
if (channels.HasValue)
{
args += " -ac " + channels.Value;
// Boost volume to 200% when downsampling from 6ch to 2ch
if (channels.Value <= 2 && state.AudioStream.Channels.HasValue && state.AudioStream.Channels.Value > 5)
{
args += " -vol 512";
}
}
if (request.AudioSampleRate.HasValue)
{
args += " -ar " + request.AudioSampleRate.Value;
}
if (request.AudioBitRate.HasValue)
{
args += " -ab " + request.AudioBitRate.Value;
}
args += " -ac " + channels.Value;
}
if (request.AudioSampleRate.HasValue)
{
args += " -ar " + request.AudioSampleRate.Value;
}
if (request.AudioBitRate.HasValue)
{
args += " -ab " + request.AudioBitRate.Value;
}
var volParam = 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";
}
args += string.Format(" -af \"aresample=async=1000,{0}\"", volParam);
return args;
}