Ticket #1224 (closed feature: fixed)

Opened 2 years ago

Last modified 10 months ago

HLS: support PES packets across TS boundaries

Reported by: jeroen Owned by: jeroen
Priority: High Milestone: Plugins
Component: general Keywords:
Cc: brams Forum thread:

Description (last modified by jeroen) (diff)

There's various branches of an open source segmenter that can create Apple HLS files, but there are a few differences between its implementation and those of Apple/Wowza:

  • Audio elementary streams don't have an ID of 448, but 445 (fixed by supporting in framework)
  • ADTS headers contain an MPEG2 streamtype flag instead of MPEG4 (fixed by supporting in framework)
  • TS fragment don't start with a keyframe. (fixed by ignoring non-IDR frames upon switching)
  • TS fragments start with PES data from the previous TS fragment (indicated by non-zero continuity counter).

The last issue can be fixed by decoupling the PES parsing from the TS loading. Needs a bit of a rewrite though. For now, the issue is logged in the framework:

Discarding TS [audio|video] packet without PES header.

Test videos that have this issue include:

  • Presentation
  • Zencoder
  • Serenity
  • Talent

Change History

comment:1 Changed 2 years ago by jeroen

Squeeze uses the HTTPSegmenter tool for building the TS files:

 http://code.google.com/p/httpsegmenter/

Having support (in or for) this tool will fix this issue for a wider variety of tools.

comment:2 Changed 2 years ago by jeroen

  • Description modified (diff)
  • Summary changed from Adaptive: add support for Squeeze streams to Adaptive: add support for HTTP segmenter streams

comment:3 Changed 2 years ago by jeroen

  • Summary changed from Adaptive: add support for HTTP segmenter streams to Adaptive: add support for Squeeze/HTTPSegmenter streams

comment:4 Changed 2 years ago by jeroen

  • Description modified (diff)
  • Summary changed from Adaptive: add support for Squeeze/HTTPSegmenter streams to Adaptive: find decent OSS HTTP Segmenter

comment:5 Changed 23 months ago by jeroen

  • Summary changed from Adaptive: find decent OSS HTTP Segmenter to HLS: issues with open source HTTPSegmenter

comment:6 Changed 18 months ago by jeroen

  • Priority set to Normal

comment:7 Changed 17 months ago by jeroen

  • Description modified (diff)

comment:8 Changed 17 months ago by jeroen

  • Type changed from enhancement to bug

comment:9 Changed 17 months ago by jeroen

  • Type changed from bug to enhancement
  • Summary changed from HLS: issues with open source HTTPSegmenter to HLS: support PES packets across TS boundaries

comment:10 Changed 16 months ago by jeroen

  • Type changed from enhancement to feature

comment:11 Changed 16 months ago by jeroen

As part of this, we should also ensure the entire video is not kept in memory anymore. Not really needed ...

comment:12 Changed 14 months ago by jeroen

  • Description modified (diff)

comment:13 Changed 14 months ago by brams

  • Cc brams added

comment:14 Changed 13 months ago by pablo

  • Priority changed from Normal to High

comment:15 Changed 10 months ago by jeroen

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

Implemented by Courtenay...

Note: See TracTickets for help on using tickets.