Re: [vdr] Identifying MPEG-4 HE-AAC (LATM, LAOS) audio formats
Am 06.12.24 um 21:32 schrieb Marko Mäkelä:
A couple of weeks ago, Finland took the penultimate step to get rid of DVB-T. Since years, we had DVB-T and DVB-T2 running in parallel. The DVB-T transponders should be shut down in 2025.
same here but h.265 video and aac audio.
The step was to introduce a second free-to-air DVB-T2 bouquet to carry some channels that were previously only available with DVB-T and MPEG-2. The VDR channel search failed to find this transponder; I ran a patched version of https://github.com/mighty-p/t2scan/pull/15/ to generate a new channels.conf. (Is this a bug of VDR, or a feature? I remember that when I originally set up VDR, I had to get a channels.conf from tscan or t2scan.)
have You tried the latest git version of scan in dvb-utils @linuxtx.org repo?
Unlike our first free-to-air DVB-T2 bouquet, which uses MPEG-4 H.264 video with AC3 audio, the second one uses H.264 video and HE-AAC audio, also known as LATM or LOAS. This had to be explicitly enabled for my output device: https://github.com/reufer/rpihddevice/issues/20
The HE-AAC support in rpihddevice is experimental,
as it has been in ffmpeg until today and rpihddevive is based on it?
maybe because the sampling rate is hard-coded as 48 kHz and the number of channels as 2. Unlike AC3, it does not look like these parameters would be available in any audio frame header. As far I understood from a NorDig.org specification, the sampling rate would always be 48 kHz, but the number of channels could be identified by something in the container, specifically, Table 12.28 and Table 12.29 at page 164 of https://nordig.org/wp-content/uploads/2016/03/NorDig-Unified- Requirements-ver.-3.2.1.pdf
Have You tried the latest git ffprobe version, does it detect the aac flavor of Your dvb-t2 DVB channels correctly?
Have You tried latest git mediainfo?
What would have to be changed in VDR or rpihddevice or both to correctly switch between 2-channel and 5.1-channel HE-AAC audio? This is mostly an academic question and exercise, because I only have stereo audio hardware and don't know if any programming is actually available with multichannel audio.
Not at all academic. Since AVRs do not implement Fraunhofer codecs we need a HDNI PCM Multichannel driver for the raspberry pi to playback 5.1 channel aac without transcoding it to ac3 which can be done with mplayer on the fly.
I've made a HDMI PCM Multichannel output to AVR driver patch for the Allwinner SoC alsa audio driver, look for it on the alsa-dev list archives.
Best regards,
Marko
y tom
Fri, Dec 06, 2024 at 10:31:06PM +0100, schorpp wrote:
Am 06.12.24 um 21:32 schrieb Marko Mäkelä:
A couple of weeks ago, Finland took the penultimate step to get rid of DVB-T. Since years, we had DVB-T and DVB-T2 running in parallel. The DVB-T transponders should be shut down in 2025.
same here but h.265 video and aac audio.
Right, it's H.265 video in Germany. I found somewhere a reference to something that would transcode H.265 into H.264 on the fly on a Raspberry Pi 3, so that the Videocore GPU could play it in real time.
The VDR channel search failed to find this transponder; I ran a patched version of https://github.com/mighty-p/t2scan/pull/15/ to generate a new channels.conf. (Is this a bug of VDR, or a feature? I remember that when I originally set up VDR, I had to get a channels.conf from tscan or t2scan.)
have You tried the latest git version of scan in dvb-utils @linuxtx.org repo?
At https://git.linuxtv.org/v4l-utils.git I found a reference to the command dvbv5-scan. An "apt search dvbv5-scan" on my Debian Sid as well as on Raspbian 12.8 yielded two packages: dvb-tools and w-scan-cpp. I vaguely remember that I had used the latter one a few years ago. I just invoked the following on the Raspberry Pi:
w_scan_cpp -c FI
The output during scanning looks convincing, but the program seems to get stuck waiting for something at the end, for several minutes.
I also tried to invoke dvbv5-scan from dvb-tools, but it seems to require a file that contains some initial parameters.
Anyway, I was mainly wondering if it is normal that the EPG update in VDR did not find the new transponder. I guess it is; the search space would be huge if it had to cover satellite, cable, terrestrial and some IPTV sources as well.
The HE-AAC support in rpihddevice is experimental,
as it has been in ffmpeg until today and rpihddevive is based on it?
As in:
#ifdef ENABLE_AAC_LATM #warning "experimental AAC-LATM frame parser enabled, only 2ch/48kHz supported!" #endif
Have You tried the latest git ffprobe version, does it detect the aac flavor of Your dvb-t2 DVB channels correctly?
I only have 2-channel recordings or DVB-T2 streams available to me. Those already play without any problems. But I don't have any recording with multichannel audio. I would like to implement correct detection and playback of multichannel HE-AAC audio, so that the AAC audio support could be enabled by default in rpihddevice.
Have You tried latest git mediainfo?
I was reading the libmediainfo source code a few days ago. I guess I should just have executed mediainfo on an MPEG-4 TS file inside a debugger, to find out how and where exactly it detects the audio parameters.
Not at all academic. Since AVRs do not implement Fraunhofer codecs we need a HDNI PCM Multichannel driver for the raspberry pi to playback 5.1 channel aac without transcoding it to ac3 which can be done with mplayer on the fly.
Right, also according to the NorDig specification, some transcoding of audio is mandatory for some audio output options.
I've made a HDMI PCM Multichannel output to AVR driver patch for the Allwinner SoC alsa audio driver, look for it on the alsa-dev list archives.
Sorry, I could not find it. I figured out that AVR here must refer to Audio Video Receiver. The only HDMI output devices that I have are displays with 2 built-in speakers. I believe that I am currently using 2-channel PCM audio output.
Are there any sample MPEG TS recordings with 5.1 channel AAC audio? That would be very helpful. In a 2-channel setup, would it be customary to pass through only the first 2 channels and ignore the rest?
Marko
participants (2)
-
Marko Mäkelä
-
schorpp