Media players

From AtoM wiki
Revision as of 18:12, 23 November 2018 by Dan (talk | contribs) (Development tasks and estimates)

Development > MediaPlayers

This page will provide an overview of the digital object media player(s) supported in AtoM, which are used to allow users to play access derivative copies of streaming media such as video files in the browser. It was first created on 2018-11-23, and is current as of the AtoM 2.4 and 2.5 releases.

Early implementation

The current media library, Flowplayer, was implemented in the 1.0.8-beta release. At the time, Flowplayer was a flash-based video player (version 3.1 of Flowplayer was released in April 2009), and version 3.1.5 was added to AtoM in August of 2009, and included in the 1.0.8 release. See development ticket #2187 in the AtoM issues list for further details.

Current status

Since that time, no major upgrades or changes have been implemented to improve AtoM's video playback support. Meanwhile, increasing discoveries of security vulnerabilities and zero-day exploits in Flash have led an increasing amount of browsers and platforms to disavow Flash support, starting as early as 2010, when Steve Jobs stated that Apple would not allow Flash on the iPhone, iPod touch and iPad – citing abysmal security as one reason (source). Since then, with increasing security problems being discovered in Flash and the arrival of HTML5 (which supports native video playback), most major browsers have chosen to disable Flash by default.

Flowplayer itself has redesigned its media player and while they do still maintain a Flash implementation, future development efforts have been focused on an HTML5 version of the player. Support for version 3.1.5, which AtoM still uses, has been discontinued for some time. The Flowplayer Flash version has not been actively developed since 2014, and the last major release was version 3.2.18. At this point, it is likely that support for Flash will be fully discontinued by 2020.

AtoM is in need of an updated open source media player.

Replacement requirements

Any new video player replacement for AtoM should:

  • Be open source
  • Be HTML5-based
  • Be able to play audio as well
  • Ideally, include a Flash fallback for legacy browser users
  • Support a broad range of playback formats
  • Be under active development
  • Include basic responsive support for different devices and screen sizes
  • Support accessibility, including:
    • ARIA support for screenreaders
    • Keyboard control support
    • Subtitle support
  • Ideally, include an API

Evaluating options

In August of 2018, Artefactual explored the current open source HTML5 video player landscape in search of a replacement candidate that met our requirements. We found the following page extremely useful in evaluating the best contenders:

After exploring the options listed in the site above, as well as any other popular options that met our criteria we could find, we found the following 3 players to be the closest match to our requirements:

Able Player

MediaElement.js

Accessible HTML5 Video Player

Final recommendation

Of the above options, the Artefactual team felt that MediaElement.js would be the best fit as a replacement video player for AtoM.

First developed by John Dyer at the Dallas Theological Seminary and released under MIT license, MediaElement.js is a widely-used project under active development, built responsively with a unified API that can fall back gracefully to Flash, which includes ARIA screen-reader support, subtitles, chapters and playlists, keyboard control, and more. The look and feel is skinnable, it requires no additional Javascript library support, and can also support playback of videos hosted on YouTube, Vimeo, and DailyMotion. It also has a plugin ecosystem that can further extend functionality, such as adding basic Google Analytics support, preview on hover, and extended playback controls.

Artefactual has prepared initial development estimates for our community based on implementing MediaElement as the replacement for the current Flowplayer.

Development tasks and estimates

Below you will find a summary of development task and associated cost estimates, prepared by the Artefactual developers based on the decision to use MediaElement as the replacement library.

'Current as of: 2018-11-23

Integrate MediaElement Player in AtoM
Subtask Notes Estimate
Remove Flowplayer Work required to extract the current library $300
Add MediaElement player files to AtoM Install player to vendor folder and update Copyright file; general configuration $300
Incorporate MediaElement player into AtoM pages for viewing Modify the digital object module's showAudio and showVideo components; create the JS file to load the player; CSS changes; testing $3,600
Remove Flashplayer check from AtoM Remove current code that checks the user's browser to see if Flash is present $300
Generate mp4 reference derivatives instead of flash video (flv) files
Subtask Notes Estimate
Update digital object code to create MPEG4 / H.264 reference derivatives instea of Flash video derivs Determine default bitrate, size, etc for new derivatives; review and update all affected areas (including regen-derivatives CLI task, digital object code to support CSV imports via web interface and command-line, etc). $2,700
Develop task to replace existing Flash video derivatives with mp4 files
Subtask Notes Estimate
Add new option to the regen-derivatives command-line task to allow regenerating only video file derivatives to mp4 files Ensure users have an easy way to update existing derivatives without having to regenerate all derivatives, which could lose custom user derivative uploads $1,200
TOTAL DEVELOPMENT FEES: $8,400


Costs not included in this table

There are a few administrative costs not included in the table above, which Artefactual would include in any formal quote prepared based on the estimates above. These include:

  • Community support fee - 10% of the development fees, which we include in all our develpoment estimates that add code to the public AtoM project, to help maintain the feature over subsequent release, and cover documentation writing and maintenance, etc.
  • Deployment of a testing site during the project
  • Quality assurance testing during the project, performed by Artefactual's team of analysts
  • Any fees associated with deploying the code immediately to the sponsor's AtoM environment, and/or backporting it to an earlier stable branch for immediate use, etc.
  • Any applicable taxes

The estimated total with all additional fees is $11,940.