[FFmpeg-trac] #6903(undetermined:new): Muxing TS into MKV container

FFmpeg trac at avcodec.org
Sat Dec 9 02:33:51 EET 2017


#6903: Muxing TS into MKV container
-------------------------------------+-------------------------------------
             Reporter:               |                    Owner:
  alexrichmond                       |                   Status:  new
                 Type:  defect       |                Component:
             Priority:  important    |  undetermined
              Version:  git-master   |               Resolution:
             Keywords:  TS MKV       |               Blocked By:
  Muxing                             |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by mkver):

 The video track in your file switches between coded frames and coded
 fields (field_pic_flag in the slice header changes). The problem is that
 every pair of complementary fields is combined in one PES packet in the
 transport stream so that the transport stream only provides timestamps for
 one field for every pair of complementary fields (when coded fields are
 used). The second field doesn't have a timestamp and this explains your
 error.
 For the sake of simplicity I have cut the file and uploaded the relevant
 part.
 mkvmerge can handle this situation. Here is what mkvinfo has to say about
 mkvmerge's output:
 {{{
 Track 1: video, codec ID: V_MPEG4/ISO/AVC (h.264 profile: High @L4.0),
 mkvmerge/mkvextract track ID: 0, language: und, pixel width: 1920, pixel
 height: 1080, display width: 1920, display height: 1080, default duration:
 40.000ms (25.000 frames/fields per second for a video track)
 I frame, track 1, timestamp 1102 (00:00:01.102), size 146899, adler
 0x3a9b4aba
 P frame, track 1, timestamp 942 (00:00:00.942), size 139374, adler
 0xfc4c0269
 P frame, track 1, timestamp 862 (00:00:00.862), size 90443, adler
 0x1080007c
 B frame, track 1, timestamp 822 (00:00:00.822), size 40792, adler
 0xf7090a1b
 P frame, track 1, timestamp 902 (00:00:00.902), size 49530, adler
 0x4218bf70
 P frame, track 1, timestamp 1022 (00:00:01.022), size 101863, adler
 0x03f2a5ab
 P frame, track 1, timestamp 982 (00:00:00.982), size 75109, adler
 0x115f480f
 P frame, track 1, timestamp 1062 (00:00:01.062), size 47457, adler
 0x794afe20
 P frame, track 1, timestamp 1422 (00:00:01.422), size 180802, adler
 0x268e64f6
 P frame, track 1, timestamp 1262 (00:00:01.262), size 148743, adler
 0xe6e9b429
 P frame, track 1, timestamp 1182 (00:00:01.182), size 132469, adler
 0x208d28a3
 B frame, track 1, timestamp 1142 (00:00:01.142), size 88067, adler
 0x3b75e181
 P frame, track 1, timestamp 1222 (00:00:01.222), size 100645, adler
 0x37589268
 P frame, track 1, timestamp 1342 (00:00:01.342), size 103806, adler
 0xc7ef60c5
 P frame, track 1, timestamp 1302 (00:00:01.302), size 78379, adler
 0x72cfba8d
 P frame, track 1, timestamp 1382 (00:00:01.382), size 62003, adler
 0x1e548cc1
 P frame, track 1, timestamp 1742 (00:00:01.742), duration 20.000, size
 105633, adler 0x36d720d4
 P frame, track 1, timestamp 1762 (00:00:01.762), duration 20.000, size
 19106, adler 0x4e06f0aa
 B frame, track 1, timestamp 1582 (00:00:01.582), duration 20.000, size
 52108, adler 0xc9272e8b
 B frame, track 1, timestamp 1602 (00:00:01.602), duration 20.000, size
 12234, adler 0x559ff846
 B frame, track 1, timestamp 1502 (00:00:01.502), duration 20.000, size
 38976, adler 0xa30ef9a1
 B frame, track 1, timestamp 1522 (00:00:01.522), duration 20.000, size
 9769, adler 0x8e881b27
 B frame, track 1, timestamp 1462 (00:00:01.462), size 50844, adler
 0x0e951a7b
 B frame, track 1, timestamp 1542 (00:00:01.542), duration 20.000, size
 18126, adler 0x7b987a92
 B frame, track 1, timestamp 1562 (00:00:01.562), duration 20.000, size
 7613, adler 0x9e31d455
 B frame, track 1, timestamp 1662 (00:00:01.662), duration 20.000, size
 30925, adler 0x30dd0036
 B frame, track 1, timestamp 1682 (00:00:01.682), duration 20.000, size
 9885, adler 0x952070f0
 B frame, track 1, timestamp 1622 (00:00:01.622), duration 20.000, size
 19439, adler 0x3d890a0b
 B frame, track 1, timestamp 1642 (00:00:01.642), duration 20.000, size
 8698, adler 0x65f0e903
 B frame, track 1, timestamp 1702 (00:00:01.702), duration 20.000, size
 13952, adler 0x39c035d4
 B frame, track 1, timestamp 1722 (00:00:01.722), duration 20.000, size
 7518, adler 0x269b94cc
 I frame, track 1, timestamp 2062 (00:00:02.062), duration 20.000, size
 189404, adler 0xb07b01ac
 P frame, track 1, timestamp 2082 (00:00:02.082), duration 20.000, size
 59511, adler 0x0489e5cf
 B frame, track 1, timestamp 1902 (00:00:01.902), duration 20.000, size
 50243, adler 0x1da2fcc7
 B frame, track 1, timestamp 1922 (00:00:01.922), duration 60.000, size
 19604, adler 0x28535ea4
 B frame, track 1, timestamp 1822 (00:00:01.822), duration 20.000, size
 31691, adler 0x4902c0d2
 B frame, track 1, timestamp 1842 (00:00:01.842), duration 20.000, size
 15479, adler 0xbb242d78
 B frame, track 1, timestamp 1782 (00:00:01.782), duration 20.000, size
 14940, adler 0x46e4ed6e
 B frame, track 1, timestamp 1802 (00:00:01.802), duration 20.000, size
 15016, adler 0x5eab3de5
 B frame, track 1, timestamp 1862 (00:00:01.862), duration 20.000, size
 13772, adler 0x0275e9b0
 B frame, track 1, timestamp 1882 (00:00:01.882), duration 20.000, size
 9647, adler 0x04c3f910
 B frame, track 1, timestamp 1982 (00:00:01.982), duration 80.000, size
 8251, adler 0x1997e534
 }}}
 The block with adler checksum 0x36d720d4 (the first with a duration of
 20ms) is the last block that ends up in ffmpeg's output. The next block
 leads to the error.
 And here is the output of the framehash muxer applied to (cut) input file.
 As can be seen, only every second packet has a valid timestamp.
 {{{
 #format: frame checksums
 #version: 2
 #hash: CRC32
 #extradata 0,                             110, 130299f3
 #software: Lavf58.2.103
 #tb 0: 1/90000
 #media_type 0: video
 #codec_id 0: h264
 #dimensions 0: 1920x1080
 #sar 0: 1/1
 #stream#, dts,        pts, duration,     size, hash
 0,      -3600,      32400,     3600,   147015, 280a8ac2, S=1,        1,
 72080df5
 0,          0,      18000,     3600,   139379, c5bc026d, S=1,        1,
 72080df5
 0,       3600,      10800,     3600,    90452, cb81a659, S=1,        1,
 72080df5
 0,       7200,       7200,     3600,    40805, 158780ca, S=1,        1,
 72080df5
 0,      10800,      14400,     3600,    49542, 0290949d, S=1,        1,
 72080df5
 0,      14400,      25200,     3600,   101868, becdf100, S=1,        1,
 72080df5
 0,      18000,      21600,     3600,    75120, 51bdfb2f, S=1,        1,
 72080df5
 0,      21600,      28800,     3600,    47467, 26b3bf62, S=1,        1,
 72080df5
 0,      25200,      61200,     3600,   180815, f7093884, S=1,        1,
 72080df5
 0,      28800,      46800,     3600,   148755, 047146bd, S=1,        1,
 72080df5
 0,      32400,      39600,     3600,   132479, 07437aff, S=1,        1,
 72080df5
 0,      36000,      36000,     3600,    88078, ada5eae3, S=1,        1,
 72080df5
 0,      39600,      43200,     3600,   100655, cd0ea4c9, S=1,        1,
 72080df5
 0,      43200,      54000,     3600,   103818, 5b1d8c1d, S=1,        1,
 72080df5
 0,      46800,      50400,     3600,    78384, 33e85f29, S=1,        1,
 72080df5
 0,      50400,      57600,     3600,    62008, aeee912a, S=1,        1,
 72080df5
 0,      54000,      90000,     1800,   105643, fac38f0f
 0,      55800, -9223372036854775808,     1800,    19117, 9143fc1a, S=1,
 1, 72080df5
 0,      57600,      75600,     1800,    52121, 87d79e2e
 0,      59400, -9223372036854775808,     1800,    12239, ef063aa0, S=1,
 1, 72080df5
 0,      61200,      68400,     1800,    38984, 57de3fcd
 0,      63000, -9223372036854775808,     1800,     9779, 26b31b16, S=1,
 1, 72080df5
 0,      64800,      64800,     3600,    50849, 0fbc8a5a, S=1,        1,
 72080df5
 0,      68400,      72000,     1800,    18139, c4c7f8eb
 0,      70200, -9223372036854775808,     1800,     7626, 3666c94a, S=1,
 1, 72080df5
 0,      72000,      82800,     1800,    30933, 403002dc
 0,      73800, -9223372036854775808,     1800,     9890, 22275811, S=1,
 1, 72080df5
 0,      75600,      79200,     1800,    19451, ef4db7c1
 0,      77400, -9223372036854775808,     1800,     8707, dfc12bf5, S=1,
 1, 72080df5
 0,      79200,      86400,     1800,    13966, 121ddec9
 0,      81000, -9223372036854775808,     1800,     7529, 9f926233, S=1,
 1, 72080df5
 0,      82800,     118800,     1800,   189412, a1dcfcbc
 0,      84600, -9223372036854775808,     1800,    59516, 368b319a, S=1,
 1, 72080df5
 0,      86400,     104400,     1800,    50256, a45247e5
 0,      88200, -9223372036854775808,     1800,    19609, 18355df4, S=1,
 1, 72080df5
 0,      90000,      97200,     1800,    31705, bdb848d5
 0,      91800, -9223372036854775808,     1800,    15491, b98d3a33, S=1,
 1, 72080df5
 0,      93600,      93600,     1800,    14954, 31a1b146
 0,      95400, -9223372036854775808,     1800,    15021, 4164f608, S=1,
 1, 72080df5
 0,      97200,     100800,     1800,    13786, 9890a1d1
 0,      99000, -9223372036854775808,     1800,     9658, 7cc0f086, S=1,
 1, 72080df5
 0,     100800,     111600,     1800,     8256, c1c262f6
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6903#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list