Opened 7 years ago

Closed 7 years ago

Last modified 7 years 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 7 years 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 7 years ago.
ffmpeg log
ffplay_log (805.8 KB ) - added by Igor Selivanov 7 years ago.
ffplay log

Change History (10)

by Igor Selivanov, 7 years ago

Attachment: dvbt2_small.ts added

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

comment:1 by Carl Eugen Hoyos, 7 years ago

Component: undeterminedavformat
Keywords: mpegts latm added
Version: unspecifiedgit-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 by Igor Selivanov, 7 years ago

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 by Igor Selivanov, 7 years ago

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?

by Igor Selivanov, 7 years ago

Attachment: ffmpeg_log added

ffmpeg log

by Igor Selivanov, 7 years ago

Attachment: ffplay_log added

ffplay log

comment:4 by Carl Eugen Hoyos, 7 years ago

Reproduced by developer: set
Resolution: fixed
Status: newclosed

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 by Igor Selivanov, 7 years ago

  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.

in reply to:  5 comment:6 by Carl Eugen Hoyos, 7 years ago

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 by Igor Selivanov, 7 years ago

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.