Hate to disappoint, but unless you have several dozen Brinks trucks loaded with untraceable cash rolling up in DC, it ain’t gonna happen.
Do they need to be Brinks? Unfortunately it is looking like you are correct, therefore ATSC3 and Channels users for the most part is going to be a bad marriage going forward. It already is for most of us!
ATSC 3.0 is moving quickly into irrelevancy. The effort spent on making HDHR devices ATSC 3.0 compatible was completely wasted. The winning strategy in the ATSC 3.0 game is simply not to play.
Just came to add that my local channels just added the 12 channel 7.1.4 audio as well, and Channels is working fine with this format. However, on ATV bitrate info isn't displaying.
What's interesting is when I did a test recording from 129.1 and I look at the details of that recording thru the Channels web interface it showed 12 channels:
Track #1: AC-4
12 channels (FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR) eng
When I look at the mp4 file directly using mediainfo it shows 10 channels:
Audio #1
ID : 50 (0x32)
Menu ID : 3 (0x3)
Format : AC-4
Format/Info : Audio Coding 4
Commercial name : Dolby AC-4
Format version : Version 2
Codec ID : 6
Duration : 1 h 1 min
Channel(s) : 10 channels
Channel layout : L R C LFE Ls Rs Tfl Tfr Tbl Tbr
Sampling rate : 48.0 kHz
Frame rate : 29.970 (30000/1001) FPS (1601.6 SP F)
I'm not sure why Channels shows one thing and mediainfo shows another?
You should report the bug to mediainfo.
ffprobe shows
Stream #0:0[0x31]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt2020nc/bt2020/smpte2084, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 90k tbn
Stream #0:1[0x32](eng): Audio: ac4 (AC-4 / 0x342D4341), 46034 Hz, 12 channels (FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR), fltp
Stream #0:2[0x39](eng): Data: bin_data (STPP / 0x50505453)
Stream #0:3[0x33](spa): Audio: ac4 (AC-4 / 0x342D4341), 46034 Hz, stereo, fltp
Googling the output differences between ffmpeg's ffprobe and mediainfo there are multiple hits for video and audio. I'm not going to guess which one is more accurate since I'm not very knowledgeable in this arena. I'm running mediainfo v23.09 so it's pretty up-to-date.
If someone that is more knowledgeable than I wants to open up a bug report against mediainfo if that is incorrect then please do.
The problem might be AC-4 support is not included in the stock ffmpeg so mediainfo is the only tool supporting AC-4 out of the box.
ffmpeg shows 12 channels, mediainfo 10 on stream.ts
Duration: 00:00:52.60, start: 67534.865056, bitrate: 4605 kb/s
I asked chatgpt to parse it using tsduck and generate a python script
$ tsp -I file stream.ts -P tables -O drop
* PAT, TID 0x00 (0), PID 0x0000 (0)
Version: 0, sections: 1, total size: 16 bytes
- Section 0:
TS id: 1 (0x0001)
Program: 3 (0x0003) PID: 48 (0x0030)
* PMT, TID 0x02 (2), PID 0x0030 (48)
Version: 1, sections: 1, total size: 72 bytes
- Section 0:
Program: 0x0003 (3), PCR PID: 0x0031 (49)
Elementary stream: type 0x24 (HEVC video), PID: 0x0031 (49)
Elementary stream: type 0x06 (MPEG-2 PES private data), PID: 0x0032 (50)
- Descriptor 0: Registration (0x05, 5), 4 bytes
Format identifier: 0x41432D34 ("AC-4")
- Descriptor 1: ISO-639 Language (0x0A, 10), 4 bytes
Language: eng, Type: 0x00 (undefined)
Elementary stream: type 0x06 (MPEG-2 PES private data), PID: 0x0039 (57)
- Descriptor 0: Registration (0x05, 5), 4 bytes
Format identifier: 0x53545050 ("STPP")
- Descriptor 1: ISO-639 Language (0x0A, 10), 4 bytes
Language: eng, Type: 0x00 (undefined)
Elementary stream: type 0x06 (MPEG-2 PES private data), PID: 0x0033 (51)
- Descriptor 0: Registration (0x05, 5), 4 bytes
Format identifier: 0x41432D34 ("AC-4")
- Descriptor 1: ISO-639 Language (0x0A, 10), 4 bytes
Language: spa, Type: 0x00 (undefined)
$ tsp -I file stream.ts -P filter --pid 50 -P pes -O file audio50.pes
$ python3.13 ./parser4.py audio50.pes
197 frame(s) with 9 channel(s)
256 frame(s) with 10 channel(s)
253 frame(s) with 11 channel(s)
255 frame(s) with 8 channel(s)
256 frame(s) with 9 channel(s)
256 frame(s) with 10 channel(s)
43 frame(s) with 11 channel(s)
I think the situation is a bit complicated here since the number of channels is dynamic(?) and changes every 10 seconds(?) or maybe chatGPT is hallucinating
or maybe a PES packet doesn't contain all channels (only active channels)?
Not sure how AC-4 is packetized, doesn't it use metadata?
Also, are you using the Channels DVR ffmpeg/ffprobe or another build?
There is nice web app to analyze streams
Channels DVR
I've tried multiple versions while working on this. I have the older ffmpeg/ffprobe installed (5.1.6) on the server and it can't even decode many/most of the streams. Then I had to use Channels ffmpeg/ffprobe (6.0.2) which could decode most of the streams and it's the one that said Stream 0 was 12 channels which contradicted mediainfo.
