Opened 3 years ago

Last modified 3 years ago

#5501 open defect

EAC3 decoding

Reported by: Mista_D Owned by:
Priority: minor Component: avformat
Version: git-master Keywords: mpegts
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

Problem decoding EAC3 from TS, if track is repackaged with "-copy_unkown", then the stream is a FFmpeg decodable AC3 384k...

Any way to decode original file without the temp file?

  1. FAILED TO DECODE

ffmpeg -i part.ts -map 0:1 -t 10 -f null -

ffmpeg version N-79000-g66edd86 Copyright (c) 2000-2016 the FFmpeg developers

built with gcc 5.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --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-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 19.100 / 55. 19.100
libavcodec 57. 28.100 / 57. 28.100
libavformat 57. 28.100 / 57. 28.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 39.102 / 6. 39.102
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100

[mpegts @ 00000000007a2700] probed stream 1 failed
[mpegts @ 00000000007a2700] Could not find codec parameters for stream 1 (Unknown: none (EAC3 / 0x33434145)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'part.ts':

Duration: N/A, start: 1.083400, bitrate: N/A
Program 2

Stream #0:0[0x1e1]: Video: h264 (High 4:2:2) ([27][0][0][0] / 0x001B), yuv422p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9],

Closed Captions, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc

Stream #0:1[0x1e2]: Unknown: none (EAC3 / 0x33434145)

Cannot map stream #0:1 - unsupported type.
If you want unsupported types ignored instead of failing, please use the -ignore_unknown option
If you want them copied, please use -copy_unknown

  1. COPIED TRACK TO TS with "-copy_unknown"

ffmpeg -i 108GB_9.ts -map 0:1 -t 10 -copy_unknown -c copy audio_test.ts

ffmpeg version N-79000-g66edd86 Copyright (c) 2000-2016 the FFmpeg developers

built with gcc 5.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --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-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 19.100 / 55. 19.100
libavcodec 57. 28.100 / 57. 28.100
libavformat 57. 28.100 / 57. 28.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 39.102 / 6. 39.102
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100

[mpegts @ 0000000000662820] probed stream 1 failed
[mpegts @ 0000000000662820] Could not find codec parameters for stream 1 (Unknown: none (EAC3 / 0x33434145)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from '108GB_9.ts':

Duration: N/A, start: 1.083400, bitrate: N/A
Program 2

Stream #0:0[0x1e1]: Video: h264 (High 4:2:2) ([27][0][0][0] / 0x001B), yuv422p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9],

Closed Captions, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc

Stream #0:1[0x1e2]: Unknown: none (EAC3 / 0x33434145)

Output #0, mpegts, to 'audio_test.ts':

Metadata:

encoder : Lavf57.28.100
Stream #0:0: Unknown: none (EAC3 / 0x33434145)

Stream mapping:

Stream #0:1 -> #0:0 (copy)

Press [q] to stop, ? for help
size= 540kB time=00:00:09.98 bitrate= 443.5kbits/s speed= 35x
video:0kB audio:0kB subtitle:0kB other streams:473kB global headers:0kB muxing overhead: 14.242310%

  1. CONVERT TEST AUDIO FILE to WAV - OK!

ffmpeg -i audio_test.ts 1.wav

ffmpeg version N-79000-g66edd86 Copyright (c) 2000-2016 the FFmpeg developers

built with gcc 5.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --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-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 19.100 / 55. 19.100
libavcodec 57. 28.100 / 57. 28.100
libavformat 57. 28.100 / 57. 28.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 39.102 / 6. 39.102
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100

Input #0, mpegts, from 'audio_test.ts':

Duration: 00:00:09.98, start: 1.400000, bitrate: 443 kb/s
Program 1

Metadata:

service_name : Service01
service_provider: FFmpeg

Stream #0:0[0x100]: Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 384 kb/s

Output #0, wav, to '1.wav':

Metadata:

ISFT : Lavf57.28.100
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 5.1(side), s16, 4608 kb/s
Metadata:

encoder : Lavc57.28.100 pcm_s16le

Stream mapping:

Stream #0:0 -> #0:0 (eac3 (native) -> pcm_s16le (native))

Press [q] to stop, ? for help
[eac3 @ 000000000078ef20] incomplete frame
size= 5652kB time=00:00:10.04 bitrate=4608.1kbits/s speed= 141x
video:0kB audio:5652kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001762%

Change History (6)

comment:1 Changed 3 years ago by Mista_D

Original test file - blank video frames with original audio track. http://www.mediafire.com/download/x2769n0orzybw06/AEC3_undecodable.ts

comment:2 Changed 3 years ago by cehoyos

  • Keywords mpegts added

I cannot reproduce with the sample you uploaded: Please provide command line and console output for the sample you uploaded or upload a larger sample (there is no file size limit).

comment:3 Changed 3 years ago by Mista_D

Resubmitting test file, commands and console as per Carlos' request.

LONGER TEST FILE:
http://www.mediafire.com/download/3213n9fvecewxwn/part.ts

COMMANDS:

  1. NOT DECODING

ffmpeg -i part.ts -map 0:1 -f null /dev/null
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers

built with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52)
configuration: --prefix=/home/dennisp/010_64 --enable-static --enable-postproc --enable-gpl --enable-avfilter --enable-libx264 --enable-libxvid --enable-libmp3lame --enable-libx265 --enable-pthreads --enable-swscale --enable-runtime-cpudetect --disable-devices --disable-avdevice --extra-ldflags=-static --disable-shared --enable-bzlib --enable-zlib --enable-libfaac --extra-libs='-lx264 -lxvidcore -lmp3lame -lpthread -lm -lbz2 -lz -lpthread -lvpx -lass -lfontconfig -lexpat -lfreetype -lfaac -lx265 -lfdk-aac' --enable-libfdk-aac --disable-encoder=libgsm --disable-decoder=libgsm --disable-doc --enable-libvpx --enable-libass --enable-version3 --enable-nonfree --enable-libfreetype --pkg-config-flags=--static
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100

[mpegts @ 0x404f980] Could not find codec parameters for stream 1 (Unknown: none (EAC3 / 0x33434145)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'part.ts':

Duration: 00:00:19.06, start: 1.083400, bitrate: 125913 kb/s
Program 2

Stream #0:0[0x1e1]: Video: h264 (High 4:2:2) ([27][0][0][0] / 0x001B), yuv422p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], Closed Captions, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1e2]: Unknown: none (EAC3 / 0x33434145)

Cannot map stream #0:1 - unsupported type.
If you want unsupported types ignored instead of failing, please use the -ignore_unknown option
If you want them copied, please use -copy_unknown

  1. COPY UNDECODABLE TRACK TO A TEMP AUDIO TS FILE:

ffmpeg281 -i part.ts -map 0:1 -copy_unknown -c copy audio.ts
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers

built with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52)
configuration: --prefix=/home/dennisp/010_64 --enable-static --enable-postproc --enable-gpl --enable-avfilter --enable-libx264 --enable-libxvid --enable-libmp3lame --enable-libx265 --enable-pthreads --enable-swscale --enable-runtime-cpudetect --disable-devices --disable-avdevice --extra-ldflags=-static --disable-shared --enable-bzlib --enable-zlib --enable-libfaac --extra-libs='-lx264 -lxvidcore -lmp3lame -lpthread -lm -lbz2 -lz -lpthread -lvpx -lass -lfontconfig -lexpat -lfreetype -lfaac -lx265 -lfdk-aac' --enable-libfdk-aac --disable-encoder=libgsm --disable-decoder=libgsm --disable-doc --enable-libvpx --enable-libass --enable-version3 --enable-nonfree --enable-libfreetype --pkg-config-flags=--static
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100

[mpegts @ 0x3ad29a0] Could not find codec parameters for stream 1 (Unknown: none (EAC3 / 0x33434145)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'part.ts':

Duration: 00:00:19.06, start: 1.083400, bitrate: 125913 kb/s
Program 2

Stream #0:0[0x1e1]: Video: h264 (High 4:2:2) ([27][0][0][0] / 0x001B), yuv422p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], Closed Captions, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1e2]: Unknown: none (EAC3 / 0x33434145)

Output #0, mpegts, to 'audio.ts':

Metadata:

encoder : Lavf56.40.101
Stream #0:0: Unknown: none (EAC3 / 0x33434145)

Stream mapping:

Stream #0:1 -> #0:0 (copy)

Press [q] to stop, ? for help
[mpegts @ 0x3ad29a0] PES packet size mismatch
size= 993kB time=00:00:18.20 bitrate= 446.7kbits/s
video:0kB audio:0kB subtitle:0kB other streams:854kB global headers:0kB muxing overhead: 16.271017%

  1. NEWLY CREATED AUDIO TS FILE IS DECODABLE:

fmpeg281 -i part.ts -map 0:1 -copy_unknown -c copy audio.ts
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers

built with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52)
configuration: --prefix=/home/dennisp/010_64 --enable-static --enable-postproc --enable-gpl --enable-avfilter --enable-libx264 --enable-libxvid --enable-libmp3lame --enable-libx265 --enable-pthreads --enable-swscale --enable-runtime-cpudetect --disable-devices --disable-avdevice --extra-ldflags=-static --disable-shared --enable-bzlib --enable-zlib --enable-libfaac --extra-libs='-lx264 -lxvidcore -lmp3lame -lpthread -lm -lbz2 -lz -lpthread -lvpx -lass -lfontconfig -lexpat -lfreetype -lfaac -lx265 -lfdk-aac' --enable-libfdk-aac --disable-encoder=libgsm --disable-decoder=libgsm --disable-doc --enable-libvpx --enable-libass --enable-version3 --enable-nonfree --enable-libfreetype --pkg-config-flags=--static
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100

[mpegts @ 0x3ad29a0] Could not find codec parameters for stream 1 (Unknown: none (EAC3 / 0x33434145)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'part.ts':

Duration: 00:00:19.06, start: 1.083400, bitrate: 125913 kb/s
Program 2

Stream #0:0[0x1e1]: Video: h264 (High 4:2:2) ([27][0][0][0] / 0x001B), yuv422p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], Closed Captions, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1e2]: Unknown: none (EAC3 / 0x33434145)

Output #0, mpegts, to 'audio.ts':

Metadata:

encoder : Lavf56.40.101
Stream #0:0: Unknown: none (EAC3 / 0x33434145)

Stream mapping:

Stream #0:1 -> #0:0 (copy)

Press [q] to stop, ? for help
[mpegts @ 0x3ad29a0] PES packet size mismatch
size= 993kB time=00:00:18.20 bitrate= 446.7kbits/s
video:0kB audio:0kB subtitle:0kB other streams:854kB global headers:0kB muxing overhead: 16.271017%
[admin26@san-prod-drop-02 ~]$ ffmpeg281 -i audio.ts -f null /dev/null
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers

built with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52)
configuration: --prefix=/home/dennisp/010_64 --enable-static --enable-postproc --enable-gpl --enable-avfilter --enable-libx264 --enable-libxvid --enable-libmp3lame --enable-libx265 --enable-pthreads --enable-swscale --enable-runtime-cpudetect --disable-devices --disable-avdevice --extra-ldflags=-static --disable-shared --enable-bzlib --enable-zlib --enable-libfaac --extra-libs='-lx264 -lxvidcore -lmp3lame -lpthread -lm -lbz2 -lz -lpthread -lvpx -lass -lfontconfig -lexpat -lfreetype -lfaac -lx265 -lfdk-aac' --enable-libfdk-aac --disable-encoder=libgsm --disable-decoder=libgsm --disable-doc --enable-libvpx --enable-libass --enable-version3 --enable-nonfree --enable-libfreetype --pkg-config-flags=--static
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100

Input #0, mpegts, from 'audio.ts':

Duration: 00:00:18.21, start: 1.400000, bitrate: 446 kb/s
Program 1

Metadata:

service_name : Service01
service_provider: FFmpeg

Stream #0:0[0x100]: Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 384 kb/s

Output #0, null, to '/dev/null':

Metadata:

encoder : Lavf56.40.101
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
Metadata:

encoder : Lavc56.60.100 pcm_s16le

Stream mapping:

Stream #0:0 -> #0:0 (eac3 (native) -> pcm_s16le (native))

Press [q] to stop, ? for help
[eac3 @ 0x29b3d40] incomplete frame
size=N/A time=00:00:18.24 bitrate=N/A
video:0kB audio:10260kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Looking to decode original file without generating the temp file.

comment:4 Changed 3 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Priority changed from normal to minor
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

Thank you for the sample, this is our main request from users!
Your file starts with a 13MB "header" that breaks auto-detection. this is also why your original upload was not helpful, please always (also) test the cut files you upload.
I sent a patch that helps a little but increased probesize is still necessary.

comment:5 Changed 3 years ago by cehoyos

  • Analyzed by developer set

comment:6 Changed 3 years ago by cehoyos

The patch was applied, I don't know if this can be improved further.

Note: See TracTickets for help on using tickets.