Opened 8 years ago

Last modified 8 years ago

#5088 open defect

copying mpegts file fails for h264 video

Reported by: Hirschmann Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: mpegts h264
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug: copying an transport stream file to another transport stream file using ffmpeg results in video not being copied to the output file for certain transport stream files.

FFprobe sees the file as valid, and containing both video (h264) and audio

ffprobe -i ../../bug.ts
ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers
  built on Nov  3 2015 14:08:20 with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-avfilter
  libavutil      52. 66.101 / 52. 66.101
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 34.100 / 55. 34.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
[h264 @ 0x1b92420] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x1b92420] decode_slice_header error
[h264 @ 0x1b92420] no frame!
[h264 @ 0x1b92420] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x1b92420] decode_slice_header error
[h264 @ 0x1b92420] no frame!
[h264 @ 0x1b92420] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x1b92420] decode_slice_header error
[h264 @ 0x1b92420] no frame!
Input #0, mpegts, from '../../bug.ts':
  Duration: 00:01:17.47, start: 88107.279200, bitrate: 2743 kb/s
  Program 4
    Stream #0:0[0x223]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x224]: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 130 kb/s

How to reproduce:

% ffmpeg -y -loglevel debug -i bug.ts -c:v copy -c:a copy -f mpegts out.ts
ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov  3 2015 14:08:20 with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-avfilter
  libavutil      52. 66.101 / 52. 66.101
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 34.100 / 55. 34.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input file with argument '../../bug.ts'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'mpegts'.
Reading option 'out.ts' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file ../../bug.ts.
Successfully parsed a group of options.
Opening an input file: ../../bug.ts.
[mpegts @ 0x214f940] Format mpegts probed with size=2048 and score=100
[mpegts @ 0x214f940] stream=0 stream_type=1b pid=223 prog_reg_desc=
[mpegts @ 0x214f940] stream=1 stream_type=f pid=224 prog_reg_desc=
[mpegts @ 0x214f940] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0
[mpegts @ 0x214f940] All programs have pmt, headers found
[h264 @ 0x2153b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x2153b40] decode_slice_header error
[h264 @ 0x2153b40] no frame!
[h264 @ 0x2153b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x2153b40] decode_slice_header error
[h264 @ 0x2153b40] no frame!
[h264 @ 0x2153b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x2153b40] decode_slice_header error
[h264 @ 0x2153b40] no frame!
[h264 @ 0x2153b40] Frame num gap 29 26
[h264 @ 0x2153b40] Frame num gap 29 27
[h264 @ 0x2153b40] no picture ooo
[h264 @ 0x2153b40] no picture
[h264 @ 0x2153b40] Increasing reorder buffer to 1
[mpegts @ 0x214f940] All info found
[mpegts @ 0x214f940] After avformat_find_stream_info() pos: 0 bytes read:577680 seeks:2 frames:65
Input #0, mpegts, from '../../bug.ts':
  Duration: 00:01:17.47, start: 88107.279200, bitrate: 2743 kb/s
  Program 4
    Stream #0:0[0x223], 21, 1/90000: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], 1/50, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x224], 44, 1/90000: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 130 kb/s
Successfully opened the file.
Parsing a group of options: output file out.ts.
Applying option c:v (codec name) with argument copy.
Applying option c:a (codec name) with argument copy.
Applying option f (force format) with argument mpegts.
Successfully parsed a group of options.
Opening an output file: out.ts.
Successfully opened the file.
[mpegts @ 0x2155420] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts
Output #0, mpegts, to 'out.ts':
  Metadata:
    encoder         : Lavf55.34.100
    Stream #0:0, 0, 1/90000: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 1/25, q=2-31, 25 fps, 90k tbn, 25 tbc
    Stream #0:1, 0, 1/90000: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, 130 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
    Last message repeated 1 times
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005334 > 10000000: forcing output
[mpegts @ 0x2155420] Delay between the first packet and last packet in the muxing queue is 10005333 > 10000000: forcing output
No more output streams to write to, finishing.
frame=    0 fps=0.0 q=-1.0 Lsize=    1391kB time=00:01:16.88 bitrate= 148.2kbits/s
video:0kB audio:1225kB subtitle:0 data:0 global headers:0kB muxing overhead 13.499879%
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x2153380] Statistics: 0 seeks, 451 writeouts
[AVIOContext @ 0x2158100] Statistics: 27145840 bytes read, 2 seeks


Attachments (1)

bug_cut.ts (2.4 MB ) - added by Carl Eugen Hoyos 8 years ago.

Change History (5)

comment:1 by Hirschmann, 8 years ago

Can't attach my file because of the file size limit, and copying the file destoys the video section..

So here is a wetransfer link with the file in question:
http://we.tl/nUpgSE2fMt

by Carl Eugen Hoyos, 8 years ago

Attachment: bug_cut.ts added

comment:2 by Carl Eugen Hoyos, 8 years ago

Component: ffmpegundetermined
Keywords: h264 added; copy removed
Reproduced by developer: set
Status: newopen

For future tickets please remember to always test current FFmpeg git head.

$ ffmpeg -i bug_cut.ts -vcodec copy out.h264
ffmpeg version N-77236-g758be45 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      55. 10.100 / 55. 10.100
  libavcodec     57. 17.100 / 57. 17.100
  libavformat    57. 20.100 / 57. 20.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 21.100 /  6. 21.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[h264 @ 0x25067c0] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x25067c0] decode_slice_header error
[h264 @ 0x25067c0] no frame!
[h264 @ 0x25067c0] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x25067c0] decode_slice_header error
[h264 @ 0x25067c0] no frame!
[h264 @ 0x25067c0] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x25067c0] decode_slice_header error
[h264 @ 0x25067c0] no frame!
Input #0, mpegts, from 'bug_cut.ts':
  Duration: 00:00:07.91, start: 88107.279200, bitrate: 2588 kb/s
  Program 4
    Stream #0:0[0x223]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], Closed Captions, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x224]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 130 kb/s
Output #0, h264, to 'out.h264':
  Metadata:
    encoder         : Lavf57.20.100
    Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

comment:3 by Hirschmann, 8 years ago

My apologies, i did test with the latest git version before submitting this report,
But used 2.2 stable to generate the log.

comment:4 by Carl Eugen Hoyos, 8 years ago

Ticket #5367 looks like a duplicate.

Note: See TracTickets for help on using tickets.