dummy up audio bitrates when needed
This commit is contained in:
parent
0f198dc818
commit
e915ceda1b
|
@ -176,6 +176,14 @@ namespace MediaBrowser.MediaEncoding.Probing
|
|||
info.Video3DFormat = Video3DFormat.FullSideBySide;
|
||||
}
|
||||
|
||||
foreach (var mediaStream in info.MediaStreams)
|
||||
{
|
||||
if (mediaStream.Type == MediaStreamType.Audio && !mediaStream.BitRate.HasValue)
|
||||
{
|
||||
mediaStream.BitRate = GetEstimatedAudioBitrate(mediaStream.Codec, mediaStream.Channels);
|
||||
}
|
||||
}
|
||||
|
||||
var videoStreamsBitrate = info.MediaStreams.Where(i => i.Type == MediaStreamType.Video).Select(i => i.BitRate ?? 0).Sum();
|
||||
// If ffprobe reported the container bitrate as being the same as the video stream bitrate, then it's wrong
|
||||
if (videoStreamsBitrate == (info.Bitrate ?? 0))
|
||||
|
@ -187,6 +195,32 @@ namespace MediaBrowser.MediaEncoding.Probing
|
|||
return info;
|
||||
}
|
||||
|
||||
private int? GetEstimatedAudioBitrate(string codec, int? channels)
|
||||
{
|
||||
if (!channels.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var channelsValue = channels.Value;
|
||||
|
||||
if (string.Equals(codec, "aac", StringComparison.OrdinalIgnoreCase) ||
|
||||
string.Equals(codec, "mp3", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (channelsValue <= 2)
|
||||
{
|
||||
return 192000;
|
||||
}
|
||||
|
||||
if (channelsValue >= 5)
|
||||
{
|
||||
return 320000;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void FetchFromItunesInfo(string xml, MediaInfo info)
|
||||
{
|
||||
// Make things simpler and strip out the dtd
|
||||
|
|
|
@ -61,6 +61,12 @@ namespace MediaBrowser.Model.Drawing
|
|||
_height = height;
|
||||
}
|
||||
|
||||
public ImageSize(double width, double height)
|
||||
{
|
||||
_width = width;
|
||||
_height = height;
|
||||
}
|
||||
|
||||
private void ParseValue(string value)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
|
|
Loading…
Reference in New Issue
Block a user