Opened 2 months ago

Closed 2 months ago

Last modified 8 weeks ago

#6657 closed defect (fixed)

DVB-T2 audio support

Reported by: Igor_Selivanov Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mpegts latm
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
Audio is not supported. The video samples dvbt2_small.ts is recording of free German DVB-T2 TV channel "Das Erste HD". Unfortunately sound track AAC format is not supported/implemented with FFMPEG version 3.3.2. Since this year (March 2017) new DVB-T2 standard is broadcasting in Germany and France. Unfortunately FFMPEG doesn't implement support of some audio formats of this standard.
How to reproduce:

ffmpeg -i dvbt2_small.ts

or

ffplay dvbt2_small.ts

The problem related to audio track:
Stream #0:1[0x552]: Audio: aac (LTP) ([15][0][0][0] / 0x000F), 22050 Hz, 5.1, fltp, 1077 kb/s
Errors are:

  • More than one AAC RDB per ADTS frame is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
  • Too large remapped id is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented

FFmpeg version:
OS: Arch Linux, ffmpeg version is taken from Arch Linux repository.
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers

built with gcc 7.1.1 (GCC) 20170516
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100

Attachments (3)

dvbt2_small.ts (2.4 MB) - added by Igor_Selivanov 2 months ago.
The video samples dvbt2_small.ts is recording of free German DVB-T2 TV channel "Das Erste HD".
ffmpeg_log (29.8 KB) - added by Igor_Selivanov 2 months ago.
ffmpeg log
ffplay_log (805.8 KB) - added by Igor_Selivanov 2 months ago.
ffplay log

Change History (10)

Changed 2 months ago by Igor_Selivanov

The video samples dvbt2_small.ts is recording of free German DVB-T2 TV channel "Das Erste HD".

comment:1 Changed 2 months ago by cehoyos

  • Component changed from undetermined to avformat
  • Keywords mpegts latm added
  • Version changed from unspecified to git-master

For future tickets:
Please always test current FFmpeg git head (the only version supported here) and provide the command line you tested together with the complete, uncut console output, do not provide excerpts that you consider important.

Do you know for sure that this is a problem with ARD and not a problem with your LOEWE tv?

Patch sent.

comment:2 Changed 2 months ago by Igor_Selivanov

Loewe TV doesn't have any problem with AAC audio and DVB-T2. Loewe TV is certified for DVB-T2 standard and uses Hardware interface for decoding (not FFmpeg). This problem is related only for FFmpeg. The attached example works even fine with VLC, but not with FFmpeg.

I did all test on my Linux desktop. Arch Linux has pretty latest version of software, in my case 3.3.2, but I can test it with latest from git.

This error is related to certain transport streams. Basically FFmpeg can playback most (but not 100%) of DVB-T2 channels including ARD, but some programs are failed, because of AAC audio track. If you'd like I can post other examples.

The reason why I post this issue is:
"If you want to help, upload a sample of this file to .... " and I am developer too and, yes, I would like to help. I think for every developer is important to know limitation of own software, especial if we are talking about industry standard like DVB-T2.

comment:3 Changed 2 months ago by Igor_Selivanov

Head revision from git shows the same behavior. Strange is that FFmpeg doesn't recognize aac format.

Stream #0:1[0x552]: Audio: aac (LTP) ([15][0][0][0] / 0x000F), 22050 Hz, 5.1, fltp, 1077 kb/s

As I mention above VLC plays video without any problem and detects format as

MPEG AAC Audio (mp4a), Original ID: 1362, Stereo, Sample rate: 48000 Hz

It looks like parsing of AAC header is not correct. Can you please confirm it?

Changed 2 months ago by Igor_Selivanov

ffmpeg log

Changed 2 months ago by Igor_Selivanov

ffplay log

comment:4 Changed 2 months ago by cehoyos

  • Reproduced by developer set
  • Resolution set to fixed
  • Status changed from new to closed

You may want to inform Loewe that their mpegts muxer writes invalid files that do not conform to DVB industry standard: Stream ID 0xf is only allowed for AAC, not LATM.

Work-around added in ca72cd137d3ba57b03018dbeb83ca99d7ef96dca

comment:5 follow-up: Changed 2 months ago by Igor_Selivanov

  1. As far understand from your comment, attached example dvbt2_small.ts is not DVB conform. Loewe TV saves one program from transponder stream. Transponder stream contains multiply channels. It seems that by saving stream on hard drive AAC stream is modified and not DVB conform any more.

We compared incoming stream from German television with saved on hard drive. Indeed, stream Id is changed from 0x11 to 0xF. This is probably reason of this bug. Changing stream Id back to 0x11 fix issue of this topic.

Internally we created ticket in Loewe bug tracking system. Our DVB experts will investigate this.

  1. Unfortunately workaround that you committed, doesn't work with attached example. I would propose to revert it, because attached example is not DVB conform. Sorry for this and thanks for your time.

FFmpeg library is great tool. Number of supporting formats is amazing. It helps everybody to develop great product. Thanks a lot.

comment:6 in reply to: ↑ 5 Changed 2 months ago by cehoyos

Replying to Igor_Selivanov:

Unfortunately workaround that you committed, doesn't work with attached example.

Command line and complete, uncut console output missing.

comment:7 Changed 8 weeks ago by Igor_Selivanov

Sorry for the long reply time.

  1. Our DVB engineer found out the problem of saving original transport streams on HDD. The issue is fixed, so that old FFmpeg version (without your workaround) plays streams without any problems. With next LOEWE software update it will be delivered for end customer.
  1. We tested workaround that you posted and can confirm that it works, also with other (not only attached to this ticket) DVB-T2 recordings. This is a great improvement, even broken recording (made with old Loewe SW version) are playable. Workaround works fine not only with head revision, but also with 3.2 version of FFmpeg (workaround was merged).

Sorry, that I posted before that it doesn't work. It was my mistake, it seems that after compilation version from repository was taken and not build version. ;-(

Thank you very much, it was great help for us.

Note: See TracTickets for help on using tickets.