Opened 10 months ago

Last modified 10 months ago

#10469 new defect

non-existing PPS 0 referenced after ffmpeg segment (HLS) encoding

Reported by: maxjh Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by maxjh)

Summary of the bug:
I'm using ffmpeg to convert files to HLS format and found the second segment onwards seem to be corrupted after convert.

How to reproduce:

% ffmpeg -i https://storage.googleapis.com/lp-us-catalyst-vod-com/hls/80c9ui6jg4q82rvj/video -c:a copy -c:v copy -f hls -hls_list_size 0 -hls_playlist_type vod -hls_segment_type mpegts -hls_time 10 -y index.m3u8
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0-with-options_1 --enable-shared --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libaom --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-demuxer=dash --enable-opencl --enable-audiotoolbox --enable-videotoolbox --enable-neon --disable-htmlpages --enable-libfdk-aac --enable-nonfree
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://storage.googleapis.com/lp-us-catalyst-vod-com/hls/80c9ui6jg4q82rvj/video':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Duration: 00:16:27.43, start: 0.000000, bitrate: 2140 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 1944 kb/s, 30 fps, 30 tbr, 90k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 184 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Output #0, hls, to 'index.m3u8':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1944 kb/s, 30 fps, 30 tbr, 90k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 184 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[hls @ 0x155606f60] Opening 'index0.ts' for writing4 bitrate=N/A speed=  20x    /s speed=N/A
[hls @ 0x155606f60] Opening 'index1.ts' for writing3 bitrate=N/A speed=19.7x
[hls @ 0x155606f60] Opening 'index2.ts' for writing1 bitrate=N/A speed=19.5x
[hls @ 0x155606f60] Opening 'index3.ts' for writing4 bitrate=N/A speed=  19x
...
% ffprobe -loglevel error -show_format -show_streams -print_format json index1.ts
{
[h264 @ 0x13b704b40] non-existing SPS 0 referenced in buffering period
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
[h264 @ 0x13b704b40] non-existing SPS 0 referenced in buffering period
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
[h264 @ 0x13b704b40] decode_slice_header error
[h264 @ 0x13b704b40] no frame!
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x13b704b40] decode_slice_header error
[h264 @ 0x13b704b40] no frame!
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x13b704b40] decode_slice_header error
[h264 @ 0x13b704b40] no frame!
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x13b704b40] decode_slice_header error
[h264 @ 0x13b704b40] no frame!
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x13b704b40] decode_slice_header error
[h264 @ 0x13b704b40] no frame!
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x13b704b40] decode_slice_header error
[h264 @ 0x13b704b40] no frame!
[h264 @ 0x13b704b40] non-existing PPS 0 referenced
...
ffmpeg -version
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0-with-options_1 --enable-shared --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libaom --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-demuxer=dash --enable-opencl --enable-audiotoolbox --enable-videotoolbox --enable-neon --disable-htmlpages --enable-libfdk-aac --enable-nonfree
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100

When trying to play back index1.ts I'm only able to hear audio, the video seems to have been corrupted.

Change History (3)

comment:1 by maxjh, 10 months ago

Description: modified (diff)

comment:2 by maxjh, 10 months ago

Description: modified (diff)

comment:3 by Balling, 10 months ago

Yes, I also saw it happining all the time with m3u8 streams.

Note: See TracTickets for help on using tickets.