Opened 6 years ago

Closed 5 years ago

#466 closed defect (fixed)

Does FFMPEG support MPEGTS + H.264?

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

Description

I run GStreamer + FFMPEG with the attached video file (MPEGTS + H.264 codec). But the
following message occurred.

gstffmpegdec.c:2260:gst_ffmpegdec_frame: ffdec_h264: decoding error (len: -1,
have_data: 0)

E/GstPlayer( 552): [757], ERROR :0:: non-existing SPS 0 referenced in
buffering period

E/GstPlayer( 552): [757], ERROR :0:: non-existing PPS 0 referenced

E/GstPlayer( 552): [757], ERROR :0:: decode_slice_header error

E/GstPlayer( 552): [757], ERROR :0:: no frame!

The complete log file is attached.

Attachments (5)

h264_mpegts_log.txt (49.4 KB) - added by sunshine_uyl 6 years ago.
log file
509M_ts_1MB.bin (1000.0 KB) - added by sunshine_uyl 6 years ago.
1MB data extract from begging of video clip
ffplay_h264_mpegts_log.bmp.gz (99.3 KB) - added by sunshine_uyl 6 years ago.
ffplay_h264_mpegts_log.txt (59.9 KB) - added by sunshine_uyl 6 years ago.
ffplay_v0.8.3_h264_mpegts_log.txt (59.1 KB) - added by sunshine_uyl 6 years ago.

Download all attachments as: .zip

Change History (32)

Changed 6 years ago by sunshine_uyl

log file

Changed 6 years ago by sunshine_uyl

1MB data extract from begging of video clip

comment:1 Changed 6 years ago by cehoyos

This does not look like a valid report.

If you want to report a problem with GStreamer, please report it to GStreamer.
If you want to report a problem with FFmpeg, please provide a failing ffmpeg command line and complete, uncut output of your failing command and please upload a sufficiently long sample to http://www.datafilehost.com/
Only report a problem with ffplay if it is not reproducible with ffmpeg.

(You may of course report a problem with one of the libraries, but if it is not reproducible with ffmpeg or ffplay, you will have to explain why.)

Changed 6 years ago by sunshine_uyl

comment:2 Changed 6 years ago by sunshine_uyl

I use ffplay to play video clip (mpegts + h.264) again. Please refer to the attached file ffplay_h264_mpegts_log.bmp.gz.

comment:3 Changed 6 years ago by cehoyos

If you want to report a problem with ffplay, please confirm that it is working fine with ffmpeg.
The complete, uncut output that is needed for ffmpeg (if the problem is reproducible with ffmpeg) or ffplay (if the problem is not reproducible with ffmpeg) has to be posted in this ticket, for example by copying the output from the console, the bitmap you attached is not useful.

The 1MB sample you uploaded cannot be decoded or played, it is too short. If you have a longer sample that fails, please upload to http://www.datafilehost.com/

comment:4 Changed 6 years ago by sunshine_uyl

I have upload 509M.ts to http://www.datafilehost.com/. It is video clip with MPEGTS + H.264 codec.

comment:5 Changed 6 years ago by cehoyos

You will have to add complete, uncut console output of ffmpeg (or ffplay if the problem is not reproducible with ffmpeg) and a link to the sample you uploaded if you want your problem fixed.

comment:6 Changed 6 years ago by sunshine_uyl

Thanks for your response. Since the web site http://www.datafilehost.com/ has file size 100MB limitation. And file size of my tested video clip larger than 100MB. Could you provide other web site or FTP server for me to upload my tested vido clip.

comment:7 Changed 6 years ago by cehoyos

You could still add complete, uncut console output of ffmpeg (or ffplay, if the issue is not reproducible with ffmpeg) latest git head.

comment:8 Changed 6 years ago by sunshine_uyl

I didn't see any option of ffplay that can generate uncut console output. Could you tell how can I generate uncut console output of ffplay? Thanks in advance.

comment:9 Changed 6 years ago by cehoyos

First, you will have to test ffmpeg, because you may only report problems for ffplay that are not reproducible with ffmpeg.

Both ffmpeg and ffplay print information on the console while running.
Paste this output here.

Changed 6 years ago by sunshine_uyl

comment:10 Changed 6 years ago by sunshine_uyl

Please refer to the attached file ffplay_h264_mpegts_log.txt for log message generated by ffplay. I will attached log message generated by ffmpeg later.

comment:11 Changed 6 years ago by sunshine_uyl

Since there are many FFMPEG command option. Which FFMPEG command option would you like to test with MPEGTS + H.264 video clip?

comment:12 follow-up: Changed 6 years ago by cehoyos

  • Resolution set to invalid
  • Status changed from new to closed

The version you are using is ancient and not supported.

Please reopen if your problem is reproducible with current git head (or a current snapshot if you do not have git installed) or a current release. Please find them at http://ffmpeg.org/download.html

comment:13 Changed 6 years ago by cehoyos

With current release, I meant 0.7.4 and 0.8.3, but a git snapshot is preferred.

comment:14 Changed 6 years ago by sunshine_uyl

I use ffplay v0.8.3 to play MPEGTS + H.264 video clip. But it sill fail. Please refer to the attached file ffplay_v0.8.3_h264_mpegts_log.txt for log message generated by ffplay v0.8.3.

Changed 6 years ago by sunshine_uyl

comment:15 in reply to: ↑ 12 Changed 6 years ago by sunshine_uyl

  • Resolution invalid deleted
  • Status changed from closed to reopened

Replying to cehoyos:

The version you are using is ancient and not supported.

Please reopen if your problem is reproducible with current git head (or a current snapshot if you do not have git installed) or a current release. Please find them at http://ffmpeg.org/download.html

comment:16 Changed 6 years ago by cehoyos

Please upload a sample to http://www.datafilehost.com/

comment:17 Changed 6 years ago by sunshine_uyl

Thanks for your response. Since the web site http://www.datafilehost.com/ has file size 100MB limitation. And file size of my tested video clip larger than 100MB. Could you provide other web site or FTP server for me to upload my tested vido clip.

comment:18 Changed 6 years ago by cehoyos

Is 100MB not enough to reproduce the problem?

comment:19 Changed 6 years ago by sunshine_uyl

I got one brazil.ts with filesize less than 100MB today. And I have upload to http://www.datafilehost.com/download-5b15b1e7.html

comment:20 Changed 6 years ago by cehoyos

  • Reproduced by developer set
  • Status changed from reopened to open
  • Version changed from unspecified to git-master

The file contains two programs: 59352, low resolution, works fine and is ~26 seconds long.
The problematic program is 59328, high definition (1920x1080), it contains ~26 seconds audio starting with timestamps ~34616. Audio can be played with ffplay -vn, mplayer -demuxer lavf -novideo and can be converted with ffmpeg.
Video is ~24 seconds, and start with 34618 when played with mplayer -demuxer mpegts -nosound (and seek back).
FFmpeg initially sees video timestamps of 1317472613.58 leading to startup delay and failure because of too high drop count. (The wrong timestamps are not reproducible with ffprobe.)

$ ffmpeg -i Brazil.ts -qscale 2 out.avi
ffmpeg version N-33192-gfe70c1f, Copyright (c) 2000-2011 the FFmpeg developers
  built on Oct  1 2011 12:36:37 with gcc 4.3.2 [gcc-4_3-branch revision 141291]
  configuration: --enable-libopenjpeg
  libavutil    51. 18. 0 / 51. 18. 0
  libavcodec   53. 19. 0 / 53. 19. 0
  libavformat  53. 13. 0 / 53. 13. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 43. 6 /  2. 43. 6
  libswscale    2.  1. 0 /  2.  1. 0
[h264 @ 0x8d449a0] non-existing SPS 0 referenced in buffering period
[h264 @ 0x8d449a0] non-existing PPS referenced
[h264 @ 0x8d449a0] non-existing SPS 0 referenced in buffering period
[h264 @ 0x8d449a0] non-existing PPS 0 referenced
[h264 @ 0x8d449a0] decode_slice_header error
[h264 @ 0x8d449a0] no frame!

...

[h264 @ 0x8d449a0] non-existing SPS 0 referenced in buffering period
[h264 @ 0x8d449a0] non-existing PPS referenced
[h264 @ 0x8d449a0] non-existing SPS 0 referenced in buffering period
[h264 @ 0x8d449a0] non-existing PPS 0 referenced
[h264 @ 0x8d449a0] decode_slice_header error
[h264 @ 0x8d449a0] no frame!
[h264 @ 0x8d449a0] mmco: unref short failure
[h264 @ 0x8d86640] non-existing SPS 32 referenced in buffering period
[h264 @ 0x8d86640] non-existing PPS referenced
[h264 @ 0x8d86640] non-existing SPS 32 referenced in buffering period
[h264 @ 0x8d86640] non-existing PPS 0 referenced
[h264 @ 0x8d86640] decode_slice_header error
[h264 @ 0x8d86640] no frame!
[mpegts @ 0x8d3faa0] probed stream 5 failed
[mpegts @ 0x8d3faa0] probed stream 8 failed
[mpegts @ 0x8d3faa0] parser not found for codec none, packets or times may be invalid
.
    Last message repeated 1 times
[NULL @ 0x8d46140] start time is not set in estimate_timings_from_pts
[NULL @ 0x8d46920] start time is not set in estimate_timings_from_pts
[NULL @ 0x8d8c8a0] start time is not set in estimate_timings_from_pts
[mpegts @ 0x8d3faa0] PES packet size mismatch

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001)
 -> 59.94 (60000/1001)

Seems stream 7 codec frame rate differs from container frame rate: 29.97 (30000/1001)
 -> 29.97 (30000/1001)
Input #0, mpegts, from 'Brazil.ts':
  Duration: 06:05:53.98, start: 12688.943522, bitrate: 35 kb/s
  Program 59328
    Metadata:
      service_name    : ?Record HD
      service_provider:
    Stream #0:0[0x111]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 148.90 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x112]: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16
    Stream #0:2[0x113]: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16
    Stream #0:3[0x384]: Unknown: none ([11][0][0][0] / 0x000B)
    Stream #0:4[0x1f4]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:5[0x120]: Unknown: none ([6][0][0][0] / 0x0006)
  Program 59352
    Metadata:
      service_name    : ?Record 1Seg
      service_provider:
    Stream #0:7[0x281]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 38.96 fps, 29.97 tbr, 90k tbn, 29.97 tbc
    Stream #0:6[0x283]: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, 2 channels (FC), s16
    Stream #0:8[0x290]: Unknown: none ([6][0][0][0] / 0x0006)
[buffer @ 0x8e0eba0] w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf53.13.0
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 59.94 tbn, 59.94 tbc
    Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, flt, 128 kb/s
Stream mapping:
  Stream #0.0 -> #0.0 (h264 -> mpeg4)
  Stream #0.1 -> #0.1 (aac_latm -> ac3)
Press [q] to stop, [?] for help
[h264 @ 0x8d449a0] mmco: unref short failure
    Last message repeated 2 times
frame=  194 fps=  3 q=2.0 size=     427kB time=00:00:26.27 bitrate= 133.0kbits/s
PES packet size mismatch
[h264 @ 0x8d449a0] error while decoding MB 55 5, bytestream (-19)
Error while decoding stream #0.1
Too large number of skiped frames 1315522
frame=  198 fps=  3 q=2.0 Lsize=     428kB time=00:00:26.36 bitrate= 133.0kbits/s
video:19722kB audio:412kB global headers:0kB muxing overhead -97.873377%

Cutting the file like this solves all problems:

dd if=Brazil.ts of=test.ts bs=1M skip=72

Cutting only 71M does not really help.

comment:21 Changed 6 years ago by cehoyos

The sample plays fine with ffplay, the problems can only be seen when converting with ffmpeg (or playing with mplayer -demuxer lavf, mplayer -demuxer mpegts is worse).

comment:22 Changed 6 years ago by cehoyos

Plays fine now with mplayer -demuxer mpegts, mplayer -demuxer lavf and ffplay, the problems when converting with ffmpeg are still reproducible.

comment:23 Changed 6 years ago by cehoyos

  • Keywords H264 TS added

comment:24 Changed 6 years ago by cehoyos

Works fine with -async 1

comment:25 Changed 5 years ago by cehoyos

ffplay still plays the sample fine, ffmpeg currently fails to transcode it, I opened ticket #1830 for the regression.

comment:26 Changed 5 years ago by cehoyos

  • Keywords h264 mpegts added; H264 TS removed

comment:27 Changed 5 years ago by cehoyos

  • Resolution set to fixed
  • Status changed from open to closed

Both play back and transcoding of the sample work fine with latest git head.

Note: See TracTickets for help on using tickets.