[FFmpeg-trac] #3023(FFmpeg:new): Information lost when remuxing DTS from MKV to MP4

FFmpeg trac at avcodec.org
Wed Oct 2 23:45:45 CEST 2013


#3023: Information lost when remuxing DTS from MKV to MP4
-------------------------------------+-------------------------------------
             Reporter:  Nemesis7     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  FFmpeg       |                  Version:
             Keywords:  dts,         |  unspecified
  metadata                           |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 When remuxing a DTS 5.1 track from MKV to MP4, some data is lost; this
 causes Subler to think it's a DTS 2 ch track instead of a DTS 6 ch track.
 When remixing the same MKV file with Subler, the track is displayed as DTS
 6 ch track. Basically some information is lost in the process.

 How to reproduce:
 {{{
 ffmpeg version N-56468-g3409163-tessus Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Sep 13 2013 13:39:57 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
   configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm
 --extra-version=tessus --disable-shared --enable-static --disable-ffplay
 --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame
 --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
 --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb
 --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-
 libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm
 --enable-libopus --enable-fontconfig --enable-libfreetype --enable-libass
 --enable-libbluray --enable-filters --enable-runtime-cpudetect
   libavutil      52. 43.100 / 52. 43.100
   libavcodec     55. 31.101 / 55. 31.101
   libavformat    55. 16.102 / 55. 16.102
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 84.100 /  3. 84.100
   libswscale      2.  5.100 /  2.  5.100
   libswresample   0. 17.103 /  0. 17.103
   libpostproc    52.  3.100 / 52.  3.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-i' ... matched as input file with argument
 '/Users/Nemesis7/Movies/The Croods 2013 720p BluRay DTS
 x264-DON/sample.mkv'.
 Reading option '-sub_charenc' ... matched as AVOption 'sub_charenc' with
 argument 'ISO-8859-1'.
 Reading option '-i' ... matched as input file with argument
 '/Users/Nemesis7/Movies/The Croods 2013 720p BluRay DTS x264-DON/The
 Croods 2013 720p BluRay DTS x264-DON.NL.srt'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:0'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:1'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:1'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:2'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:3'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:4'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0:5'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '1'.
 Reading option '-map_metadata' ... matched as option 'map_metadata' (set
 metadata information of outfile from infile) with argument '0'.
 Reading option '-c:v' ... matched as option 'c' (codec name) with argument
 'copy'.
 Reading option '-c:a:0' ... matched as option 'c' (codec name) with
 argument 'copy'.
 Reading option '-ac' ... matched as option 'ac' (set number of audio
 channels) with argument '2'.
 Reading option '-c:a:1' ... matched as option 'c' (codec name) with
 argument 'aac'.
 Reading option '-b:a' ... matched as option 'b' (video bitrate (please use
 -b:v)) with argument '192k'.
 Reading option '-strict' ... matched as AVOption 'strict' with argument
 '-2'.
 Reading option '-c:s' ... matched as option 'c' (codec name) with argument
 'mov_text'.
 Reading option '-c:s' ... matched as option 'c' (codec name) with argument
 'mov_text'.
 Reading option '-c:s' ... matched as option 'c' (codec name) with argument
 'mov_text'.
 Reading option '-c:s' ... matched as option 'c' (codec name) with argument
 'mov_text'.
 Reading option '-metadata:s:s:4' ... matched as option 'metadata' (add
 metadata) with argument 'language=nld'.
 Reading option '-c:s' ... matched as option 'c' (codec name) with argument
 'mov_text'.
 Reading option '/Users/Nemesis7/Movies/The Croods 2013 720p BluRay DTS
 x264-DON/sample.mp4' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input file /Users/Nemesis7/Movies/The Croods
 2013 720p BluRay DTS x264-DON/sample.mkv.
 Successfully parsed a group of options.
 Opening an input file: /Users/Nemesis7/Movies/The Croods 2013 720p BluRay
 DTS x264-DON/sample.mkv.
 [matroska,webm @ 0x102021a00] Format matroska,webm probed with size=2048
 and score=100
 st:0 removing common factor 1000000 from timebase
 st:1 removing common factor 1000000 from timebase
 st:2 removing common factor 1000000 from timebase
 st:3 removing common factor 1000000 from timebase
 st:4 removing common factor 1000000 from timebase
 st:5 removing common factor 1000000 from timebase
 [matroska,webm @ 0x102021a00] File position before
 avformat_find_stream_info() is 7691
 [h264 @ 0x102039200] no picture
 [dca @ 0x102039800] Stream with high frequencies VQ coding
 [matroska,webm @ 0x102021a00] All info found
 [matroska,webm @ 0x102021a00] File position after
 avformat_find_stream_info() is 412157
 Input #0, matroska,webm, from '/Users/Nemesis7/Movies/The Croods 2013 720p
 BluRay DTS x264-DON/sample.mkv':
   Metadata:
     creation_time   : 2013-10-02 21:30:15
   Duration: 00:00:12.43, start: 0.000000, bitrate: 5405 kb/s
     Chapter #0.0: start 0.000000, end 12.433000
     Metadata:
       title           : 00:00:00.000
     Stream #0:0(eng), 4, 1/1000: Video: h264 (High), yuv420p, 1280x544
 [SAR 1:1 DAR 40:17], 1001/48000, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
 (default)
     Metadata:
       title           : The Croods 2013 720p BluRay DTS x264-DON
     Stream #0:1(eng), 24, 1/1000: Audio: dts (DTS), 48000 Hz, 5.1(side),
 fltp, 1536 kb/s (default)
     Metadata:
       title           : English DTS 5.1
     Stream #0:2(eng), 0, 1/1000: Subtitle: subrip (default)
     Metadata:
       title           : English
     Stream #0:3(spa), 0, 1/1000: Subtitle: subrip
     Metadata:
       title           : Spanish
     Stream #0:4(por), 0, 1/1000: Subtitle: subrip
     Metadata:
       title           : Portuguese
     Stream #0:5(cze), 0, 1/1000: Subtitle: subrip
     Metadata:
       title           : Czech
 Successfully opened the file.
 Parsing a group of options: input file /Users/Nemesis7/Movies/The Croods
 2013 720p BluRay DTS x264-DON/The Croods 2013 720p BluRay DTS
 x264-DON.NL.srt.
 Successfully parsed a group of options.
 Opening an input file: /Users/Nemesis7/Movies/The Croods 2013 720p BluRay
 DTS x264-DON/The Croods 2013 720p BluRay DTS x264-DON.NL.srt.
 [srt @ 0x10203b600] Format srt probed with size=2048 and score=100
 [srt @ 0x10203b600] File position before avformat_find_stream_info() is
 52849
 [srt @ 0x10203b600] All info found
 [srt @ 0x10203b600] File position after avformat_find_stream_info() is
 52849
 Input #1, srt, from '/Users/Nemesis7/Movies/The Croods 2013 720p BluRay
 DTS x264-DON/The Croods 2013 720p BluRay DTS x264-DON.NL.srt':
   Duration: N/A, bitrate: N/A
     Stream #1:0, 0, 1/1000: Subtitle: subrip
 Successfully opened the file.
 Parsing a group of options: output file /Users/Nemesis7/Movies/The Croods
 2013 720p BluRay DTS x264-DON/sample.mp4.
 Applying option map (set input stream mapping) with argument 0:0.
 Applying option map (set input stream mapping) with argument 0:1.
     Last message repeated 1 times
 Applying option map (set input stream mapping) with argument 0:2.
 Applying option map (set input stream mapping) with argument 0:3.
 Applying option map (set input stream mapping) with argument 0:4.
 Applying option map (set input stream mapping) with argument 0:5.
 Applying option map (set input stream mapping) with argument 1.
 Applying option map_metadata (set metadata information of outfile from
 infile) with argument 0.
 Applying option c:v (codec name) with argument copy.
 Applying option c:a:0 (codec name) with argument copy.
 Applying option ac (set number of audio channels) with argument 2.
 Applying option c:a:1 (codec name) with argument aac.
 Applying option b:a (video bitrate (please use -b:v)) with argument 192k.
 Applying option c:s (codec name) with argument mov_text.
     Last message repeated 3 times
 Applying option metadata:s:s:4 (add metadata) with argument language=nld.
 Applying option c:s (codec name) with argument mov_text.
 Successfully parsed a group of options.
 Opening an output file: /Users/Nemesis7/Movies/The Croods 2013 720p BluRay
 DTS x264-DON/sample.mp4.
 Successfully opened the file.
 detected 4 logical cores
 [graph 0 input from stream 0:1 @ 0x101c03ec0] Setting 'time_base' to value
 '1/48000'
 [graph 0 input from stream 0:1 @ 0x101c03ec0] Setting 'sample_rate' to
 value '48000'
 [graph 0 input from stream 0:1 @ 0x101c03ec0] Setting 'sample_fmt' to
 value 'fltp'
 [graph 0 input from stream 0:1 @ 0x101c03ec0] Setting 'channel_layout' to
 value '0x60f'
 [graph 0 input from stream 0:1 @ 0x101c03ec0] tb:1/48000 samplefmt:fltp
 samplerate:48000 chlayout:0x60f
 [audio format for output stream 0:2 @ 0x101c2c2c0] Setting 'sample_fmts'
 to value 'fltp'
 [audio format for output stream 0:2 @ 0x101c2c2c0] Setting 'sample_rates'
 to value
 '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
 [audio format for output stream 0:2 @ 0x101c2c2c0] Setting
 'channel_layouts' to value '0x3'
 [audio format for output stream 0:2 @ 0x101c2c2c0] auto-inserting filter
 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
 filter 'audio format for output stream 0:2'
 [AVFilterGraph @ 0x101c03c60] query_formats: 4 queried, 7 merged, 3
 already done, 0 delayed
 1.000000 0.000000 0.707107 0.000000 0.707107 0.000000
 0.000000 1.000000 0.707107 0.000000 0.000000 0.707107
 [auto-inserted resampler 0 @ 0x101c2cc00] ch:6 chl:5.1(side) fmt:fltp
 r:48000Hz -> ch:2 chl:stereo fmt:fltp r:48000Hz
 [mp4 @ 0x102022000] track 1: codec frame size is not set
 Output #0, mp4, to '/Users/Nemesis7/Movies/The Croods 2013 720p BluRay DTS
 x264-DON/sample.mp4':
   Metadata:
     creation_time   : 2013-10-02 21:30:15
     encoder         : Lavf55.16.102
     Chapter #0.0: start 0.000000, end 12.433000
     Metadata:
       title           : 00:00:00.000
     Stream #0:0(eng), 0, 1/16000: Video: h264 ([33][0][0][0] / 0x0021),
 yuv420p, 1280x544 [SAR 1:1 DAR 40:17], 1/1000, q=2-31, 23.98 fps, 16k tbn,
 1k tbc (default)
     Metadata:
       title           : The Croods 2013 720p BluRay DTS x264-DON
     Stream #0:1(eng), 0, 1/48000: Audio: dts ([169][0][0][0] / 0x00A9),
 48000 Hz, 5.1(side), 192 kb/s (default)
     Metadata:
       title           : English DTS 5.1
     Stream #0:2(eng), 0, 1/48000: Audio: aac ([64][0][0][0] / 0x0040),
 48000 Hz, stereo, fltp, 192 kb/s (default)
     Metadata:
       title           : English DTS 5.1
     Stream #0:3(eng), 0, 1/1000: Subtitle: mov_text ([8][0][0][0] /
 0x0008) (default)
     Metadata:
       title           : English
     Stream #0:4(spa), 0, 1/1000: Subtitle: mov_text ([8][0][0][0] /
 0x0008)
     Metadata:
       title           : Spanish
     Stream #0:5(por), 0, 1/1000: Subtitle: mov_text ([8][0][0][0] /
 0x0008)
     Metadata:
       title           : Portuguese
     Stream #0:6(cze), 0, 1/1000: Subtitle: mov_text ([8][0][0][0] /
 0x0008)
     Metadata:
       title           : Czech
     Stream #0:7(nld), 0, 1/1000: Subtitle: mov_text ([8][0][0][0] /
 0x0008)
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:1 -> #0:2 (dca -> aac)
   Stream #0:2 -> #0:3 (subrip -> mov_text)
   Stream #0:3 -> #0:4 (subrip -> mov_text)
   Stream #0:4 -> #0:5 (subrip -> mov_text)
   Stream #0:5 -> #0:6 (subrip -> mov_text)
   Stream #1:0 -> #0:7 (subrip -> mov_text)
 Press [q] to stop, [?] for help
 [dca @ 0x102039800] Stream with high frequencies VQ coding
 [mp4 @ 0x102022000] flushing with 4 noninterleaved
     Last message repeated 24 times
 [mp4 @ 0x102022000] flushing with 1 noninterleaved
     Last message repeated 21 times
 [mp4 @ 0x102022000] flushing with 2 noninterleaved
 [mp4 @ 0x102022000] flushing with 3 noninterleaved
 [mp4 @ 0x102022000] flushing with 4 noninterleaved
     Last message repeated 5 times
 [mp4 @ 0x102022000] flushing with 3 noninterleaved
     Last message repeated 14 times
 [mp4 @ 0x102022000] flushing with 4 noninterleaved
     Last message repeated 494 times
 [mp4 @ 0x102022000] flushing with 1 noninterleaved
     Last message repeated 26 times
 [mp4 @ 0x102022000] flushing with 2 noninterleaved
 [mp4 @ 0x102022000] flushing with 3 noninterleaved
     Last message repeated 21 times
 [mp4 @ 0x102022000] flushing with 4 noninterleaved
     Last message repeated 398 times
 [mp4 @ 0x102022000] flushing with 1 noninterleaved
 [mp4 @ 0x102022000] flushing with 2 noninterleaved
 [mp4 @ 0x102022000] flushing with 3 noninterleaved
 [mp4 @ 0x102022000] flushing with 4 noninterleaved
     Last message repeated 382 times
 [mp4 @ 0x102022000] flushing with 3 noninterleaved
     Last message repeated 49 times
 [mp4 @ 0x102022000] flushing with 4 noninterleaved
     Last message repeated 562 times
 [output stream 0:2 @ 0x101c04120] EOF on sink link output stream
 0:2:default.
 No more output streams to write to, finishing.e=00:22:06.76 bitrate=
 52.2kbits/s
 [aac @ 0x102023200] Trying to remove 512 more samples than there are in
 the queue
 frame=  298 fps=0.0 q=-1.0 Lsize=    8559kB time=01:30:02.80 bitrate=
 13.0kbits/s
 video:5903kB audio:2581kB subtitle:25 global headers:0kB muxing overhead
 0.587230%
 1907 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 0x101c2bea0] Statistics: 232 seeks, 3061 writeouts
 [AVIOContext @ 0x101c045c0] Statistics: 8400624 bytes read, 0 seeks
 [AVIOContext @ 0x101c06ea0] Statistics: 52849 bytes read, 0 seeks
 }}}

 The MP4Box output:

 {{{
 * Movie Info *
         Timescale 1000 - Duration 01:30:07.826
         9 track(s)
         Fragmented File: no
         File Brand isom - version 512
         Created: GMT Wed Oct  2 21:30:15 2013

 File has no MPEG4 IOD/OD

 Chapters:
         Chapter #1 - 00:00:00.000 - "00:00:00.000"

 iTunes Info:
         Encoder Software: Lavf55.16.102

 Track # 1 Info - TrackID 1 - TimeScale 16000 - Media Duration 00:00:12.428
 Track has 1 edit lists: track duration is 00:00:12.429
 Media Info: Language "English" - Type "vide:avc1" - 298 samples
 Visual Track layout: x=0 y=0 width=1280 height=544
 MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
 AVC/H264 Video - Visual Size 1280 x 544
         AVC Info: 1 SPS - 1 PPS - Profile High @ Level 4.1
         NAL Unit length bits: 32
         Pixel Aspect Ratio 1:1 - Indicated track size 1280 x 544
         Chroma format 0 - Luma bit depth 8 - chroma bit depth 8
 Self-synchronized

 Track # 2 Info - TrackID 2 - TimeScale 48000 - Media Duration 00:00:12.425
 Track has 2 edit lists: track duration is 00:00:12.431
 Media Info: Language "English" - Type "soun:mp4a" - 1165 samples
 MPEG-4 Config: Audio Stream - ObjectTypeIndication 0xa9
 Synchronized on stream 1
 Alternate Group ID 1

 Track # 3 Info - TrackID 3 - TimeScale 48000 - Media Duration 00:00:12.447
 Track has 1 edit lists: track duration is 00:00:12.431
 Media Info: Language "English" - Type "soun:mp4a" - 584 samples
 MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
 MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
 Synchronized on stream 1
 Alternate Group ID 1

 Track # 4 Info - TrackID 4 - TimeScale 1000 - Media Duration 00:00:11.506
 Track has 1 edit lists: track duration is 00:00:11.506
 Media Info: Language "English" - Type "sbtl:tx3g" - 7 samples
 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
 Alternate Group ID 3

 Track # 5 Info - TrackID 5 - TimeScale 1000 - Media Duration 00:00:10.764
 Track has 1 edit lists: track duration is 00:00:10.764
 Track is disabled
 Media Info: Language "Spanish; Castilian" - Type "sbtl:tx3g" - 9 samples
 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
 Alternate Group ID 3

 Track # 6 Info - TrackID 6 - TimeScale 1000 - Media Duration 00:00:11.506
 Track has 1 edit lists: track duration is 00:00:11.506
 Track is disabled
 Media Info: Language "Portuguese" - Type "sbtl:tx3g" - 7 samples
 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
 Alternate Group ID 3

 Track # 7 Info - TrackID 7 - TimeScale 1000 - Media Duration 00:00:11.506
 Track has 1 edit lists: track duration is 00:00:11.506
 Track is disabled
 Media Info: Language "Unknown" - Type "sbtl:tx3g" - 7 samples
 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
 Alternate Group ID 3

 Track # 8 Info - TrackID 8 - TimeScale 1000 - Media Duration 01:30:07.826
 Track has 1 edit lists: track duration is 01:30:07.826
 Track is disabled
 Media Info: Language "Dutch; Flemish" - Type "sbtl:tx3g" - 1459 samples
 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
 Alternate Group ID 3

 Track # 9 Info - TrackID 9 - TimeScale 1000 - Media Duration 00:00:12.433
 Track has 1 edit lists: track duration is 00:00:12.433
 Track is disabled
 Media Info: Language "Undetermined" - Type "text:text" - 1 samples
 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
 }}}

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/3023>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list