Audio-only HLS skipping with individually-made fmp4 segments

387 Views Asked by At

Here's my HLS playlist:

I'm able to stream that link using VLC. However I hear a tiny audio error like "skipping" in between each of the 10-second segments.

Here's my initialization segment:

And here are the fragmented mp4 segments generated by encoding AAC audio in ffmpeg and then writing only the media fragment to an .m4s using java mp4parser:

Here are detailed lab notes about the process I developed to create these: https://github.com/charneykaye/encode-fmp4-demo

Here's the output of ffprobe chunky.m3u8:

[hls @ 0x55fd1ae10f00] Skip ('#EXT-X-VERSION:7')
[hls @ 0x55fd1ae10f00] Opening 'chunky-128k-IS.mp4' for reading
[hls @ 0x55fd1ae10f00] Opening 'chunky-128k-163840683.m4s' for reading
Input #0, hls, from 'chunky.m3u8':
  Duration: 00:01:00.00, start: 0.000000, bitrate: 0 kb/s
  Program 0 
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      variant_bitrate : 0
      major_brand     : iso5
      minor_version   : 1
      compatible_brands: isomiso5dash
      creation_time   : 2021-12-02T00:21:18.000000Z

Paradox?

I'm reading https://video.stackexchange.com/questions/34627/audio-discontinuities-when-generating-hls-segments-in-different-processes "MDCT-based codecs like AAC or MP3 carry out their transforms over multiple adjoining frames" and wonder if maybe the answer is, this is impossible with AAC or MP3 audio, and in fact, because individually generating the media segments is a constraint, I would need to generate MPEG-2 TS fragments? Or would that not help either?

0

There are 0 best solutions below