[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