Ticket #1351 (closed bug: fixed)

Opened 2 years ago

Last modified 23 months ago

Adaptive: Some additional bugs

Reported by: jeroen Owned by: jeroen
Priority: Milestone: Plugins
Component: flash Keywords:
Cc: Forum thread:

Description (last modified by jeroen) (diff)

A few bugs, kindly provided by Matt:

  1. Absolute URLs in playlists. You seem to be supporting absolute URLs in the main manifest file, but not in the individual playlists.
  2. Audio-only levels. You're checking for an AAC extension, but in the URL for my audio-only level doesn't have an AAC extension. So it's failing with a "no aac or avs found" error.
  3. Android problems. I've tested this in the chromeless player testing page and I get the same problem with all of the videos. Android will start playing the video but will only play to about 4 seconds in (2 fragments?). I can seek the video and it will repeat the same thing. It's possible that it's just a problem with the Flash plugin for Android.

Change History

comment:1 Changed 23 months ago by jeroen

  • Description modified (diff)

Both relative links, server absolutes (/) and full  http:// absolutes are now supported for either playlists or fragments. Querystring parameters are taken into account (not forwarded to child URLs).

comment:2 Changed 23 months ago by jeroen

  • Description modified (diff)

Dropping audio-only streams is hard while decoding is already in progress. Added an additional check to drop sub-100k bitrate levels as well; that's the best I can think of for now.

comment:3 Changed 23 months ago by jeroen

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

Android support is flakey, but better than Flash-in-Android. The issue with the provider locking up also seems to be a result of the Android Flash client. For Android, it's probably best for now to support just a progressive MP4 for 2.1/2.2 and native HLS streams (video tag) for 2.3 and 3.x. For live streaming, it's probably best to only do 2.3 / 3.x, since the RTP/RTSP features of Android are flakey too.

I did some tests with various HLS streams on 2.3 (Samsung Galaxy). The results:

  • Both single streams and variant streams work.
  • Both live and on-demand streams work (indicated by #EXT-X-ENDLIST)
  • There's various quirks around the ordering of tags in the playlists. For example the #EXT-X-TARGETDURATION should be at the top of a playlist in order for the video to be scrub-able.
  • Metadata (captions, chapters, etc) in streams is not supported. The device will refuse to play.
  • MP3 audio (as opposed to AAC) seems not supported. I have only one test stream, which completely locked up the phone.
  • Seeking works smoothest with streams in which each TS fragment starts with a keyframe.
  • Seeking seems to lock up the player if a TS fragment does not start with a PES a/v header (done by e.g. the open source segmenter.c)
Note: See TracTickets for help on using tickets.