Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#7554 closed defect (invalid)

truehd_core bitstream filter to remove Atmos?

Reported by: Samuel Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Suggestion, wish, to be able to avoid transcoding in the case of TrueHD audio stream not supported by renderers.

Change History (15)

comment:1 by Elon Musk, 5 years ago

Resolution: invalid
Status: newclosed

Report does not make sense. Needs clarification. TrueHD does not have core which would then be extracted. When opening new tickets make them more descriptive and concise.

comment:2 by Carl Eugen Hoyos, 5 years ago

Component: avfilterundetermined
Keywords: ac3_core removed
Priority: wishnormal
Type: taskdefect

Or in other words: Command line and complete, uncut console output missing.

comment:3 by Samuel, 5 years ago

In tsMuxeR manual:

  • down-to-ac3 Available only for TRUE-HD tracks. Filter out HD part.

Some container does not support interleaved TrueHD+AC3.

Example of such file that could avoid audio transcoding if a bitstream filter was available for this case:
https://www15.zippyshare.com/v/v5Nxi6Rm/file.html

ffmpeg.exe -i dolby_EAC3_TrueHD_amaze_lossless-DWEU.m2ts -report -loglevel debug
ffmpeg version N-92192-g57f312a34d Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-gnutls --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-opengl --enable-pthreads --disable-w32threads --disable-dxva2 --disable-debug --pkg-config-flags=--static --extra-ldflags=-static --extra-cflags='-mtune=generic -mfpmath=sse -msse' --cpu=i686 --optflags='-O2 -finline-fun  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 33.100 / 58. 33.100
  libavformat    58. 19.100 / 58. 19.100
  libavdevice    58.  4.105 / 58.  4.105
  libavfilter     7. 33.101 /  7. 33.101
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument 'dolby_EAC3_TrueHD_amaze_lossless-DWEU.m2ts'.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url dolby_EAC3_TrueHD_amaze_lossless-DWEU.m2ts.
Successfully parsed a group of options.
Opening an input file: dolby_EAC3_TrueHD_amaze_lossless-DWEU.m2ts.
[NULL @ 080711c0] Opening 'dolby_EAC3_TrueHD_amaze_lossless-DWEU.m2ts' for reading
[file @ 08071dc0] Setting default whitelist 'file,crypto'
[mpegts @ 080711c0] Format mpegts probed with size=2048 and score=50
[mpegts @ 080711c0] stream=0 stream_type=1b pid=1011 prog_reg_desc=HDMV
[mpegts @ 080711c0] stream=1 stream_type=83 pid=1100 prog_reg_desc=HDMV
[mpegts @ 080711c0] stream=3 stream_type=84 pid=1101 prog_reg_desc=HDMV
[mpegts @ 080711c0] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:4
[AVBSFContext @ 0814cf80] nal_unit_type: 9(AUD), nal_ref_idc: 0
[AVBSFContext @ 0814cf80] nal_unit_type: 7(SPS), nal_ref_idc: 3
[AVBSFContext @ 0814cf80] nal_unit_type: 8(PPS), nal_ref_idc: 3
[AVBSFContext @ 0814cf80] nal_unit_type: 6(SEI), nal_ref_idc: 0
[AVBSFContext @ 0814cf80] nal_unit_type: 6(SEI), nal_ref_idc: 0
[AVBSFContext @ 0814cf80] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 08072440] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 08072440] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 08072440] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 08072440] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 08072440] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 08072440] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 08072440] Format yuv420p chosen by get_format().
[h264 @ 08072440] Reinit context to 1920x1088, pix_fmt: yuv420p
[h264 @ 08072440] no picture 
[eac3 @ 08075300] channel_map: 1A00
[mpegts @ 080711c0] max_analyze_duration 5000000 reached at 5000000 microseconds st:1
[mpegts @ 080711c0] After avformat_find_stream_info() pos: 0 bytes read:4329616 seeks:2 frames:6436
Input #0, mpegts, from 'dolby_EAC3_TrueHD_amaze_lossless-DWEU.m2ts':
  Duration: 00:01:03.52, start: 4200.000000, bitrate: 22899 kb/s
  Program 1 
    Stream #0:0[0x1011](eng), 122, 1/90000: Video: h264 (High), 1 reference frame (HDMV / 0x564D4448), yuv420p(progressive, left), 1920x1080 (1920x1088), 0/1, 24 fps, 24 tbr, 90k tbn, 48 tbc
    Stream #0:1[0x1100], 6002, 1/90000: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 7.1, s32 (24 bit)
    Stream #0:2[0x1100], 156, 1/90000: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
    Stream #0:3[0x1101], 156, 1/90000: Audio: eac3 (AC-3 / 0x332D4341), 48000 Hz, 7.1, fltp, 1664 kb/s
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 0807a0c0] Statistics: 4329616 bytes read, 2 seeks

Sorry for having thought that was an evidence...
Hoping that now it make some sens to you?

Note: Merci Carl for the "subtitling", as you know my english is weak ;)

comment:4 by Samuel, 5 years ago

It seem that MediaInfo call it: AC-3 MLP FBA 16-ch

So "Atmos" should have been more correct than TrueHD :(

Last edited 5 years ago by Samuel (previous) (diff)

comment:5 by Carl Eugen Hoyos, 5 years ago

Ok, you ran ffmpeg -i on a file from a bluray disc. Is anything wrong with the console output? Any stream misdetected?

comment:6 by Samuel, 5 years ago

Nothing wrong, it is why i called it wish.
To get a "cleaned" audio stream with simple AC-3 that it more widely supported by renderers.
That is said transcoding is always possible, but could be avoided with a bitstream filter?

Edit:
truehd_core bitstream filter?

Last edited 5 years ago by Samuel (previous) (diff)

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

Replying to Sami32:

Nothing wrong, it is why i called it wish.

What do you wish to change in the console output of the command line that you posted?

Last edited 5 years ago by Carl Eugen Hoyos (previous) (diff)

comment:8 by Samuel, 5 years ago

Priority: normalwish
Summary: ac3_core bitstream filter for TrueHDtruehd_core bitstream filter to remove Atmos?
Type: defecttask

comment:9 by Carl Eugen Hoyos, 5 years ago

Priority: wishnormal
Type: taskdefect

Please do not change ticket properties!

comment:10 by Samuel, 5 years ago

Priority: normalwish
Type: defecttask

Sorry i'm not sure to understand where you want go.
Ok but i don't see any defect so i just doesn't understand.

Forget about, it was just an idea that perhaps doesn't have any meaning.
I'll try tsMuxeR later.

comment:11 by Carl Eugen Hoyos, 5 years ago

Priority: wishnormal
Type: taskdefect

You presented us a command line that does not produce any output: I already told you in ticket #6817 that such command lines are often useless to report a bug or a missing feature (for a crash, it is often sufficient). Without such a command line that shows me what you are trying to achieve I have to guess what you want to do which is usually a bad idea: I prefer to look at your command line instead of guessing what you want.

comment:12 by Elon Musk, 5 years ago

Isn't this dupe of #4490?

comment:13 by Samuel, 5 years ago

Yes. Sorry for have missed it :(

As i don't understand how to produce a log or command line for something that doesn't exist yet in FFmpeg i just tried to make happy giving some audio stream sample that have such Atmos "layer".
So this issue could be closed.

Sorry for the noise.

Last edited 5 years ago by Samuel (previous) (diff)

comment:14 by Elon Musk, 5 years ago

I wrote truehd_core filter, patch is on ffmpeg-devel mailing list.

comment:15 by Samuel, 5 years ago

Woaw :) It is Christmas before time ;)

Thank you very much Paul +1

Last edited 5 years ago by Samuel (previous) (diff)
Note: See TracTickets for help on using tickets.