[FFmpeg-trac] #5525(avformat:new): hls_ts_options not applied to all ts packets

FFmpeg trac at avcodec.org
Mon May 9 15:48:49 CEST 2016


#5525: hls_ts_options not applied to all ts packets
-------------------------------------+-------------------------------------
             Reporter:  jack         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avformat     |                  Version:
             Keywords:  hls ts       |  unspecified
  options                            |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 * What I am trying to do:
 Create an HLS stream that is DVB compatible (mpegts's option system_b
 seems to do the job), the default hls stream is not compatible

   * What is my issue:
 Using the above option (through -hls_ts_options) works for the first
 mpegts file. However, this option is not applied for all others files.

   * The cmd line I use:
 {{{
 $ ffmpeg -nostats -i udp://@233.97.72.12:1234 -hls_ts_options
 mpegts_flags=system_b -map 0:v -map 0:a -c copy -threads 4 -hls_time 10
 -hls_flags delete_segments -hls_base_url http://10.1.1.2/testing/
 /data/testing/play.m3u8
 ffmpeg version 3.0.2-1 Copyright (c) 2000-2016 the FFmpeg developers
   built with gcc 5.3.1 (Debian 5.3.1-17) 20160429
   configuration: --prefix=/usr --extra-version=1 --toolchain=hardened
 --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu
 --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping
 --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-
 avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-
 libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-
 libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype
 --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug
 --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-
 libpulse --enable-librubberband --enable-librtmp --enable-libschroedinger
 --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex
 --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis
 --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265
 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl
 --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq
 --enable-frei0r --enable-chromaprint --enable-libx264
   libavutil      55. 17.103 / 55. 17.103
   libavcodec     57. 24.102 / 57. 24.102
   libavformat    57. 25.100 / 57. 25.100
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 31.100 /  6. 31.100
   libavresample   3.  0.  0 /  3.  0.  0
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 2 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] non-existing PPS 0 referenced
     Last message repeated 1 times
 [h264 @ 0x1c995e0] decode_slice_header error
 [h264 @ 0x1c995e0] no frame!
 [h264 @ 0x1c995e0] mmco: unref short failure
     Last message repeated 2 times
 [h264 @ 0x1c995e0] Increasing reorder buffer to 2
 [h264 @ 0x1c995e0] Increasing reorder buffer to 3
 [h264 @ 0x1c995e0] mmco: unref short failure
     Last message repeated 1 times
 [h264 @ 0x1c995e0] number of reference frames (0+5) exceeds max (4;
 probably corrupt input), discarding one
 [mpegts @ 0x1c74ca0] Could not find codec parameters for stream 6
 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [mpegts @ 0x1c74ca0] Could not find codec parameters for stream 7
 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 Input #0, mpegts, from 'udp://@233.97.72.12:1234':
   Duration: N/A, start: 28480.957233, bitrate: N/A
   Program 2001
     Metadata:
       service_name    : NRJ12
       service_provider: TCOAX
     Stream #0:0[0x42]: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 24.83 fps, 25 tbr, 90k
 tbn, 50 tbc
     Stream #0:1[0x44](fra): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 128 kb/s
     Stream #0:2[0x45](qaa): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 128 kb/s
     Stream #0:3[0x46](qad): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, fltp, 96 kb/s
     Stream #0:4[0x47](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
 (hearing impaired)
     Stream #0:5[0x48](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
     Stream #0:6[0x49]: Unknown: none ([5][0][0][0] / 0x0005)
     Stream #0:7[0x4a]: Unknown: none ([11][0][0][0] / 0x000B)
 Output #0, hls, to '/data/testing/play.m3u8':
   Metadata:
     encoder         : Lavf57.25.100
     Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 1920x1080
 [SAR 1:1 DAR 16:9], q=2-31, 24.83 fps, 25 tbr, 90k tbn, 25 tbc
     Stream #0:1(fra): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, 128 kb/s
     Stream #0:2(qaa): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, 128 kb/s
     Stream #0:3(qad): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz,
 stereo, 96 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:2 -> #0:2 (copy)
   Stream #0:3 -> #0:3 (copy)
 Press [q] to stop, [?] for help
 [hls @ 0x1ca3540] Timestamps are unset in a packet for stream 0. This is
 deprecated and will stop working in the future. Fix your code to set the
 timestamps properly
 [hls @ 0x1ca3540] Non-monotonous DTS in output stream 0:0; previous:
 93484, current: 93484; changing to 93485. This may result in incorrect
 timestamps in the output file.
 [mpegts @ 0x1e8bdc0] Timestamps are unset in a packet for stream 0. This
 is deprecated and will stop working in the future. Fix your code to set
 the timestamps properly
 frame=  582 fps= 34 q=-1.0 Lsize=N/A time=00:00:22.75 bitrate=N/A
 speed=1.33x
 video:9430kB audio:948kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 Exiting normally, received signal 2.
 }}}

 There is a tsinfo of the first file (play0.ts), which is OK:
 {{{
 $ tsinfo play0.ts
 Reading from play0.ts
 Scanning 1000 TS packets

 Packet 2 is PAT
 Program list:
     Program 1 -> PID 1000 (4096)

 Packet 3 is PMT with PID 1000 (4096)
   Program 1, version 0, PCR PID 0100 (256)
   Program streams:
     PID 0100 ( 256) -> Stream type 1b ( 27) H.264/14496-10 video
 (MPEG-4/AVC)
     PID 0101 ( 257) -> Stream type 06 (  6) H.222.0/13818-1 PES private
 data (maybe Dolby/AC-3 in DVB)
         ES info (3 bytes): 7a 01 00
         Descriptor tag 7a (122) (1 byte): 00
     PID 0102 ( 258) -> Stream type 06 (  6) H.222.0/13818-1 PES private
 data (maybe Dolby/AC-3 in DVB)
         ES info (3 bytes): 7a 01 00
         Descriptor tag 7a (122) (1 byte): 00
     PID 0103 ( 259) -> Stream type 06 (  6) H.222.0/13818-1 PES private
 data (maybe Dolby/AC-3 in DVB)
         ES info (3 bytes): 7a 01 00
         Descriptor tag 7a (122) (1 byte): 00

 Found 4 PAT packets and 2 PMT packets in 1000 TS packets
 }}}

 And this is the tsinfo for file #2, which is not OK (play1.ts):
 {{{
 tsinfo play1.ts
 Reading from play1.ts
 Scanning 1000 TS packets

 Packet 2 is PAT
 Program list:
     Program 1 -> PID 1000 (4096)

 Packet 3 is PMT with PID 1000 (4096)
   Program 1, version 0, PCR PID 0100 (256)
   Program streams:
     PID 0100 ( 256) -> Stream type 1b ( 27) H.264/14496-10 video
 (MPEG-4/AVC)
     PID 0101 ( 257) -> Stream type 87 (135) User private
     PID 0102 ( 258) -> Stream type 87 (135) User private
     PID 0103 ( 259) -> Stream type 87 (135) User private

 Found 2 PAT packets and 1 PMT packet in 1000 TS packets
 }}}

 Unless I'm mistaken, the option is only used in hls_write_header (from
 libavformat/hlsenc.c), which is only called once

 Thank you for ffmpeg!

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


More information about the FFmpeg-trac mailing list