Media file showing {channels} as 13.1 when is shouldn't be

All your suggestions, requests and ideas for future development
Post Reply
stephen147
Donor
Posts: 131
Joined: 01 Sep 2015, 22:40

Media file showing {channels} as 13.1 when is shouldn't be

Post by stephen147 »

:!: Media file showing {channels} as 13.1 when is shouldn't be

https://we.tl/t-NFpsM81yXl

Above is the first 10seconds of the file for testing.
User avatar
rednoah
The Source
Posts: 22976
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by rednoah »

ChannelPositions/String2 indicates a 13.1 stream:

Code: Select all

ChannelPositions/String2	12/1/0.1
:arrow: viewtopic.php?f=5&t=4285


{af} yields 2ch in this case, because:

Code: Select all

Channel(s)	2

I'm not sure what it's supposed to be, but if it's a MediaInfo bug, then you can make a bug report with your file sample with the MediaInfo developers as well, as only they can fix the problem at the source:
https://mediaarea.net/en/MediaInfo/Support


EDIT:

Note that embedded metadata title field says 14ch as well, so if it's really just 2ch, then their automated tooling got it wrong as well, because probably using libmediainfo as well:

Code: Select all

Title	Once Upon a Time in America (1984) 720p BRRip AAC 2 14 14ch x264_YIFY
:idea: Please read the FAQ and How to Request Help.
kim
Power User
Posts: 1251
Joined: 15 May 2014, 16:17

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by kim »

https://mediaarea.net/MediaInfoOnline
General
Unique ID : 26475950785114744443751398921636781328 (0x13EB15280C03073ECB382454D5D19D10)
Complete name : Showing as 13.1 Channel but only is 2.mkv
Format : Matroska
Format version : Version 4
File size : 147 KiB
Duration : 10 s 411 ms
Overall bit rate : 116 kb/s
Movie name : Once Upon a Time in America (1984) 720p BRRip AAC 2 14 14ch x264_YIFY
Encoded date : UTC 2019-05-10 12:30:46
Writing application : mkvmerge v33.1.0 ('Primrose') 64-bit
Writing library : libebml v1.3.7 + libmatroska v1.5.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings : CABAC / 5 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 10 s 386 ms
Bit rate : 87.3 kb/s
Nominal bit rate : 589 kb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (23976/1000) FPS
Original frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.004
Stream size : 111 KiB (75%)
Title : Once Upon A Time In America (1984) 720p BRRip AAC 2ch h264_YIFY
Writing library : x264 core 114 r1924 08d04a4
Encoding settings : cabac=1 / ref=5 / deblock=1:-2:-1 / analyse=0x3:0x113 / me=umh / subme=5 / psy=1 / psy_rd=0.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=16 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc=2pass / mbtree=0 / bitrate=589 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30 / aq=2:1.00
Language : English
Default : Yes
Forced : No

Audio
ID : 2
Format : AAC LC SBR
Format/Info : Advanced Audio Codec Low Complexity with Spectral Band Replication
Commercial name : HE-AAC
Format settings : Explicit
Codec ID : A_AAC-2
Duration : 10 s 411 ms
Bit rate : 21.8 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 23.438 FPS (2048 SPF)
Compression mode : Lossy
Stream size : 27.7 KiB (19%)
Title : AAC 2ch
Language : English
Default : Yes
Forced : No

Text
ID : 3
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Bit rate : 0 b/s
Count of elements : 0
Stream size : 0.00 Byte (0%)
Language : English
Default : Yes
Forced : No
stephen147
Donor
Posts: 131
Joined: 01 Sep 2015, 22:40

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by stephen147 »

rednoah wrote: 10 May 2019, 12:56 Note that embedded metadata title field says 14ch as well, so if it's really just 2ch, then their automated tooling got it wrong as well, because probably using libmediainfo as well:

Code: Select all

Title	Once Upon a Time in America (1984) 720p BRRip AAC 2 14 14ch x264_YIFY
That was old info when I changed the metadata.

I'm now starting to wonder if it's best to use the {af} binding now on it's own and dumbing down my complex audio routine:

Code: Select all

{
	def space = call{' '};
	// Root Directory
	def dir_root = 'Z:/Movies & TV/'+
	call{hd.matches(/(?i)SD/) ? '480p-720p/' : ' '}+
	call{hd.matches(/(?i)HD/) ? '720p-1080p/' : ' '}+
	call{hd.matches(/(?i)UHD/) ? '4k/' : ' '};
	// Main Title e.g.
	// 1408 (2007) (Director's Cut) 1080p HD Blu-ray non-HDR x264 DTS5.1ch_SiNNERS
	// 300 (2007) 720p HD BRRip non-HDR x265 DTS 5.1ch_ESiR
	// Deadpool (2016) 2160p UHD WEB-DL non-HDR AVC DTS-HD MA 7.1ch_DDR
	// Deadpool 2 (2018) (Super Duper Cut) 2160p UHD Blu-ray REMUX HDR10bit ATEME TrueHD Atmos 13Obj 7.1ch_EPSiLON
	def main_title = call{n}+
	space + '(' + call{y} + ')'+
	space + call{fn.matches(/(?i).+\b25th.+?anniv.+/) ? '(25th Anniv. Edition)' : ' '}+
	space + call{fn.matches(/(?i).+\b\(limited\b.*?\).+/) ? '(Limited Edition)' : ' '}+
	space + call{fn.matches(/(?i).+\b\(uncut\b.*?\).+/) ? '(Uncut)' : ' '}+
	space + call{fn.matches(/(?i).+\bcollector.+?s.+?edition\b.+/) ? '(Collector\'s Edition)' : ' '}+
	space + call{fn.matches(/(?i).+\bdirect.+?cut\b.+/) ? '(Director\'s Cut)' : ' '}+
	space + call{fn.matches(/(?i).+\bextended.+?\b.+/) ? '(Extended)' : ' '}+
	space + call{fn.matches(/(?i).+\bextended.+?edit\b.+/) ? '(Extended Edition)' : ' '}+
	space + call{fn.matches(/(?i).+\bimax\b.+/) ? '(IMAX Edition)' : ' '}+
	space + call{fn.matches(/(?i).+\blimited\b.+/) ? '(Limited)' : ' '}+
	space + call{fn.matches(/(?i).+\bremastered\b.+/) ? '(Remastered)' : ' '}+
	space + call{fn.matches(/(?i).+\bsuper.+duper.+cut\b.+/) ? '(Super Duper Cut)' : ' '}+
	space + call{fn.matches(/(?i).+\btheatrical\b.+/) ? '(Theatrical)' : ' '}+
	space + call{fn.matches(/(?i).+\bunrated\b.+/) ? '(Unrated)' : ' '}+
	space + call{any{fn.match(/\([^\()+?[^\d]+?\)\s*/)} {' '}{' '}}+
	space + call{self.vf ? self.vf : self.hpi}+
	space + call{hd}+
	space + call{source.matches(/(?i)blu.*ray/) ? 'Blu-ray' : {source} ?: 'WEB-DL'}+
	space + call{fn.matches(/(?i).+\bremux\b.+/) ? 'REMUX' : ' '}+
	// Only calls {hdr} if it's not SD else non-HDR
	space + call{if (hd =~ 'HD') {any{hdr + bitdepth + 'bit'}{'non-HDR'}}}+
	space + call{vc}+
	space +
	// Call audio
	// Thread here where I got the base code: https://www.filebot.net/forums/viewtopic.php?f=5&t=5285
	call {
		def mCFP =
		[
		'AAC LC SBR PS' : 'AAC',
		'AAC LC SBR' : 'AAC',
		'AAC LC' : 'AAC',
		'AC 3 Dep' : 'E-AC3',
		'AC 3' : 'AC3',
		'DTS 96 24' : 'DTS 96-24',
		'DTS ES XBR' : 'DTS-HD HRA',
		'DTS ES XLL' : 'DTS-HD MA',
		'DTS ES XXCH XBR' : 'DTS-HD HRA',
		'DTS ES XXCH XLL' : 'DTS-HD MA',
		'DTS ES XXCH' : 'DTS-ES',
		'DTS ES' : 'DTS-ES',
		'DTS XBR' : 'DTS-HD HRA',
		'DTS XLL X' : 'DTS X',
		'DTS XLL' : 'DTS-HD MA',
		'DTS' : 'DTS',
		'E AC 3 JOC' : 'EAC3 Atmos',
		'E AC 3' : 'EAC3',
		'MLP FBA 16 ch' : 'TrueHD Atmos',
		'MLP FBA' : 'TrueHD',
		'MP3' : 'MP3',
		'MPEG Audio' : 'MP2',
		'PCM' : 'PCM'
		];
		def audioClean = { it.replaceAll(/[\p{Pd}\p{Space}]/, ' ').replaceAll(/\p{Space}{2,}/, ' ').slash(' ') };
		def channelClean = { it.replaceAll(/Debug.+|Object\sBased\s?\/?|(\d+)?\sobjects\s\/\s|0.(?=\d.\d)|20/).replaceAll(/6/,'5.1').replaceAll(/8/,'7.1') };
		def audioCollection = audio.collect
		{ au ->
			def channels = any{ channelClean(au['ChannelPositionsString2'])}{ channelClean(au['ChannelsOriginal'])}{ channelClean(au['Channels']) };
			def dynChannel = {au['NumberOfDynamicObjects'] + 'Obj'};
			def ch = channels.tokenize('\\/').take(3)*.toDouble().inject(0, { a, b -> a + b }).findAll { it > 0 }.max().toString() + 'ch';
			def codec = audioClean(any{ au['CodecID/Hint'] }{ au['Format'] });
			def format_profile = { ( au['Format_AdditionalFeatures'] != null) ? audioClean(au['Format_AdditionalFeatures']) : '' };
			def combined = allOf{codec}{format_profile}.join(' ');
			def stream = allOf { mCFP.get(combined, 'UNKNOWN_FORMAT--'+combined+'--') } { dynChannel } { ch };
		};
		return audioCollection[0].join( ' ' )
		} +
		'_'+
		// Group
		call{any{"$group"}{fn.match(/(?<=[_-])[^\s_-]+?$/)}{'NA'}.replaceAll(/[-_\[\]]\s*|\.\w{3}$/, '')};
		// Language
		def lang = call{any{'.'+lang}{lang}}+{fn.matches(/(?i).+sdh.+/) ? '_SDH' : ''}{any{fn.match(/(?i)\(foreignpartsonly\)/)}{''}};
		// Extension
		def ext = call{'.'+ext};
		// Call all the bindings to create the result
		(call(main_title).replace(':', ';') + call(lang)).replaceAll(/null/,'')
	}
As @kim has posted it displays for audio:

Code: Select all

Audio
ID                                       : 2
Format                                   : AAC LC SBR
Format/Info                              : Advanced Audio Codec Low Complexity with Spectral Band Replication
Commercial name                          : HE-AAC
Format settings                          : Explicit
Codec ID                                 : A_AAC-2
Duration                                 : 10 s 411 ms
Bit rate                                 : 21.8 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 23.438 FPS (2048 SPF)
Compression mode                         : Lossy
Stream size                              : 27.7 KiB (19%)
Title                                    : AAC 2ch
Language                                 : English
Default                                  : Yes
Forced                                   : No
kim
Power User
Posts: 1251
Joined: 15 May 2014, 16:17

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by kim »

To be clear, it was a "MediaInfo bug" that was fixed in version 19.04
User avatar
rednoah
The Source
Posts: 22976
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by rednoah »

In that case, the latest beta might work better, since 19.04 is now bundled:
https://get.filebot.net/filebot/BETA/
:idea: Please read the FAQ and How to Request Help.
stephen147
Donor
Posts: 131
Joined: 01 Sep 2015, 22:40

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by stephen147 »

Thanks Kim and rednoah.

I'm using the app from Mircosoft Store. I can wait for that release as Betas are not on there.

:?: Maybe, would it be possible to have the beta on the store?
User avatar
rednoah
The Source
Posts: 22976
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by rednoah »

Unfortunately, the Microsoft Store doesn't support having stable / beta release up at the same time.
:idea: Please read the FAQ and How to Request Help.
stephen147
Donor
Posts: 131
Joined: 01 Sep 2015, 22:40

Re: Media file showing {channels} as 13.1 when is shouldn't be

Post by stephen147 »

rednoah wrote: 11 May 2019, 04:01 Unfortunately, the Microsoft Store doesn't support having stable / beta release up at the same time.
I just saw there are stupid facebook and facebook beta on there :roll: :lol:

:!: Just to confirm the latest Beta has fixed this issue like @kim has said. It's now returning:

Code: Select all

ChannelPositions/String2	2/0/0

Code: Select all

Format	AAC
Format/String	AAC LC SBR
Format/Info	Advanced Audio Codec Low Complexity with Spectral Band Replication
Format_Commercial	HE-AAC
Format_Commercial_IfAny	HE-AAC
Format_Settings	Explicit
Format_Settings_SBR	Yes (Explicit)
Format_Settings_SBR/String	Yes (Explicit)
Format_Settings_PS	No (Explicit)
Format_Settings_PS/String	No (Explicit)
Format_AdditionalFeatures	LC SBR
CodecID	A_AAC-2
Duration	13759957
Duration/String	3 h 49 min
Duration/String1	3 h 49 min 19 s 957 ms
Duration/String2	3 h 49 min
Duration/String3	03:49:19.957
Duration/String5	03:49:19.957
Channel(s)	2
Channel(s)/String	2 channels
ChannelPositions	Front: L R
ChannelPositions/String2	2/0/0
ChannelLayout	L R
SamplesPerFrame	2048
SamplingRate	48000
SamplingRate/String	48.0 kHz
FrameRate	23.438
FrameRate/String	23.438 FPS (2048 SPF)
Compression_Mode	Lossy
Compression_Mode/String	Lossy
Delay	0
Delay/String3	00:00:00.000
Delay_Source	Container
Delay_Source/String	Container
Video_Delay	0
Video_Delay/String3	00:00:00.000
Title	AAC 2ch
Language	en
Language/String	English
Language/String1	English
Language/String2	en
Language/String3	eng
Language/String4	en
Default	Yes
Default/String	Yes
Forced	No
Forced/String	No
Post Reply