Difference between revisions of "Development/MediaPlayers"
(→Evaluating options: Fix missed/broken link) |
m (→Final recommendation) |
||
(12 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
[[Development]] > MediaPlayers | [[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. | + | 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 and audio 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. |
__TOC__ | __TOC__ | ||
Line 8: | Line 8: | ||
==Early implementation== | ==Early implementation== | ||
− | The current media library, [https://flowplayer.com/ Flowplayer], was implemented in the [[Releases/Release_announcements/Release_1.0.8-beta|1.0.8-beta release]]. At the time, Flowplayer was a flash-based video player (version 3.1 of Flowplayer was released in [https://sourceforge.net/p/flowplayer/news/2009/04/flowplayer-31-is-out-now/ April 2009]), and version 3.1.5 was added to AtoM in August of 2009, and included in the 1.0.8 release | + | The current media library, [https://flowplayer.com/ Flowplayer], was implemented in the [[Releases/Release_announcements/Release_1.0.8-beta|1.0.8-beta release]]. At the time, Flowplayer was a flash-based video player (version 3.1 of Flowplayer was released in [https://sourceforge.net/p/flowplayer/news/2009/04/flowplayer-31-is-out-now/ April 2009]), and version 3.1.5 was added to AtoM in August of 2009, and included in the 1.0.8 release. |
==Current status== | ==Current status== | ||
− | Since | + | Since the initial implementation of Flowplayer in AtoM, no major upgrades or changes have been made to AtoM's time-based media playback functionality. Meanwhile, increasing discoveries of security vulnerabilities and zero-day exploits in Flash have led an increasing number 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 ([https://www.apple.com/hotnews/thoughts-on-flash/ 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 [http://flash.flowplayer.org/ 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 [https://github.com/flowplayer/flash since 2014], and the last major release was [https://github.com/flowplayer/flash/releases version 3.2.18]. At this point, it is likely that support for Flash will be fully discontinued by 2020. | Flowplayer itself has redesigned its media player and while they do still maintain a [http://flash.flowplayer.org/ 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 [https://github.com/flowplayer/flash since 2014], and the last major release was [https://github.com/flowplayer/flash/releases version 3.2.18]. At this point, it is likely that support for Flash will be fully discontinued by 2020. | ||
Line 33: | Line 33: | ||
** Keyboard control support | ** Keyboard control support | ||
** Subtitle support | ** Subtitle support | ||
− | |||
==Evaluating options== | ==Evaluating options== | ||
Line 43: | Line 42: | ||
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: | 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'' | + | '''Able Player''' |
* [https://github.com/paypal/accessible-html5-video-player Webpage] | * [https://github.com/paypal/accessible-html5-video-player Webpage] | ||
Line 61: | Line 60: | ||
==Final recommendation== | ==Final recommendation== | ||
− | + | The Artefactual team decided [https://www.mediaelementjs.com/ 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 [https://github.com/mediaelement/mediaelement-plugins plugin] ecosystem that can further extend functionality, such as adding basic Google Analytics support, preview on hover, and extended playback controls. | 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 [https://github.com/mediaelement/mediaelement-plugins 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. | Artefactual has prepared initial development estimates for our community based on implementing MediaElement as the replacement for the current Flowplayer. | ||
+ | |||
+ | We selected the H.264/MPEG-4 video format for in-browser video playback due to its broad support across desktop and mobile browsers and operating systems (e.g. Windows, Mac OSX, iOS, Android). AtoM currently uses the MP3 audio format for in-browser audio playback, which will remain unchanged. | ||
==Development tasks and estimates== | ==Development tasks and estimates== | ||
Line 71: | Line 72: | ||
Below you will find a summary of development task and associated cost estimates, prepared by the [http://artefactual.com/ Artefactual] developers based on the decision to use MediaElement as the replacement library. | Below you will find a summary of development task and associated cost estimates, prepared by the [http://artefactual.com/ Artefactual] developers based on the decision to use MediaElement as the replacement library. | ||
− | '''Current as of: 2018-11-23'' | + | '''Current as of: 2018-11-23''' |
Line 104: | Line 105: | ||
|'''Estimate''' | |'''Estimate''' | ||
|- style="background-color:#ffffff;" | |- style="background-color:#ffffff;" | ||
− | |Update digital object code to create MPEG4 / H.264 reference derivatives | + | |Update digital object code to create MPEG4 / H.264 reference derivatives instead 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). | |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 | |$2,700 | ||
Line 123: | Line 124: | ||
<br /> | <br /> | ||
− | + | ===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: | 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: | ||
− | + | {| border="1" style="border-collapse:collapse;" align="center" | |
− | + | |colspan="3" style="background-color:#BDF3FB;" align="center"|'''Additional deployment, testing, and administrative costs''' | |
− | + | |- style="background-color:#cccccc;" | |
− | + | |'''Subtask''' | |
− | + | |'''Notes''' | |
+ | |'''Estimate''' | ||
+ | |- style="background-color:#ffffff;" | ||
+ | |Community support fee | ||
+ | |A 10% fee we add to development projects that are included in public releases, to help offset the costs of Artefactual maintaining the feature through subsequent releases, writing documentation, managing bug fixes, and offering basic community support via the AtoM [https://groups.google.com/forum/#!forum/ica-atom-users user forum]. | ||
+ | |$840 | ||
+ | |- | ||
+ | |Test site deployment | ||
+ | |Deployment of an instance of AtoM populated with test data, to be used throughout the development project for previewing the feature, and managing testing and feedback | ||
+ | |$600 | ||
+ | |- | ||
+ | |Q/A Testing | ||
+ | |Quality assurance testing and analysis throughout the project to ensure the feature meets the deliverable requirements, identify and resolve any bugs, offer implementation improvement recommendations within the project scope, etc. | ||
+ | |$900 | ||
+ | |- | ||
+ | |Backporting, deployment, and maintenance | ||
+ | |Backport the new functionality to a stable branch and either deploy it or make the code available to sponsor for local installation, and assist in running the derivatives regeneration task for current flash-based video derivatives | ||
+ | |$1200 | ||
+ | |- | ||
+ | |colspan="3" style="background-color:#F8FAC7;" align="center"|'''Total additional administrative project costs: $3,540 ''' | ||
+ | |- | ||
+ | |colspan="3" style="background-color:#AEFEE5;" align="center"|'''TOTAL ALL COSTS: $11,940''' | ||
+ | |} | ||
+ | |||
+ | ==Collaborative sponsorship opportunities== | ||
+ | |||
+ | Given that the costs of sponsoring this development may be out of reach for some institutions who nevertheless would really like to see this updated functionality added to AtoM, we would like to encourage our community of users to consider ways in which the feature might be sponsored collaboratively. | ||
+ | |||
+ | Coordinating with many institutions with different schedules and availability, as well differing perspectives and feedback, can potentially add complications to a development project. In light of this, for Artefactual to be able to work effectively with multiple dispersed sponsors, we have outlined our requirements for managing such a project below. | ||
+ | |||
+ | ===Artefactual requirements for collaborative development=== | ||
+ | |||
+ | '''1) Single point of contact''': We require one institution who is willing to act as the project lead, and the main point of contact throughout the project. This simplifies the communication between our team and the sponsors - the project lead institution would act as the go-between with other sponsoring institutions to coordinate scheduling, testing, and administrative communication throughout the project. | ||
+ | |||
+ | '''2) Single point of feedback''': Working with multiple institutions on a collaboratively funded feature can be challenging if we are receiving contradictory input during the testing and feedback phase of the project. Instead, we would ask that the project lead manage internal discussions among the sponsors during the testing phase, and again act as the single point of contact for feedback, so that any contradictions around design, ideal behavior, and change requests can be resolved prior to communicating with our development team. | ||
+ | |||
+ | '''3) Ideally, a single point of payment administration''': Preferably, the project lead can process contributions from any other participating sponsors, so that Artefactual can supply and process a single invoice at the close of the project. We understand that this may not be possible for all institutions, and can explore alternatives with participating institutions if needed. | ||
+ | |||
+ | ===Additional deployment costs for co-sponsors=== | ||
+ | |||
+ | As with any major feature development carried out by Artefactual, the work will be included in the next major public release for the entire AtoM community to use, and will be immediately available in the 2.5 development branch in our public GiHub [https://github.com/artefactual/atom/ code repository]. However, if the feature were sponsored collaboratively and all participating institutions wanted access to the enhancement prior to the next public release, there may be additional deployment costs for the participating co-sponsors, so Artefactual can assist in making the work available in a stable branch and deploying it for immediate use. | ||
+ | The prices included in the section above entitled "[[Development/MediaPlayers#Costs_not_included_in_this_table|Costs not included in this table]]" assume deployment of the completed feature to a single institution. If co-sponsors wanted to access the feature prior to the next major public release and would like Artefactual's assistance in doing so, there will be additional costs, which we would handle on a time and materials basis for each institution. For institutions hosted by Artefactual, it would be possible to use support tickets to cover deployment costs. | ||
+ | Please feel free to [mailto:info@artefactual.com contact us] if you have any questions. | ||
----- | ----- |
Latest revision as of 15:25, 16 April 2023
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 and audio 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.
Contents
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.
Current status
Since the initial implementation of Flowplayer in AtoM, no major upgrades or changes have been made to AtoM's time-based media playback functionality. Meanwhile, increasing discoveries of security vulnerabilities and zero-day exploits in Flash have led an increasing number 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
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
- Webpage
- GitHub code repository (examples included on homepage)
Accessible HTML5 Video Player
- Webpage (basically just a big example video player)
- GitHub code repository
Final recommendation
The Artefactual team decided 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.
We selected the H.264/MPEG-4 video format for in-browser video playback due to its broad support across desktop and mobile browsers and operating systems (e.g. Windows, Mac OSX, iOS, Android). AtoM currently uses the MP3 audio format for in-browser audio playback, which will remain unchanged.
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 instead 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:
Additional deployment, testing, and administrative costs | ||
Subtask | Notes | Estimate |
Community support fee | A 10% fee we add to development projects that are included in public releases, to help offset the costs of Artefactual maintaining the feature through subsequent releases, writing documentation, managing bug fixes, and offering basic community support via the AtoM user forum. | $840 |
Test site deployment | Deployment of an instance of AtoM populated with test data, to be used throughout the development project for previewing the feature, and managing testing and feedback | $600 |
Q/A Testing | Quality assurance testing and analysis throughout the project to ensure the feature meets the deliverable requirements, identify and resolve any bugs, offer implementation improvement recommendations within the project scope, etc. | $900 |
Backporting, deployment, and maintenance | Backport the new functionality to a stable branch and either deploy it or make the code available to sponsor for local installation, and assist in running the derivatives regeneration task for current flash-based video derivatives | $1200 |
Total additional administrative project costs: $3,540 | ||
TOTAL ALL COSTS: $11,940 |
Collaborative sponsorship opportunities
Given that the costs of sponsoring this development may be out of reach for some institutions who nevertheless would really like to see this updated functionality added to AtoM, we would like to encourage our community of users to consider ways in which the feature might be sponsored collaboratively.
Coordinating with many institutions with different schedules and availability, as well differing perspectives and feedback, can potentially add complications to a development project. In light of this, for Artefactual to be able to work effectively with multiple dispersed sponsors, we have outlined our requirements for managing such a project below.
Artefactual requirements for collaborative development
1) Single point of contact: We require one institution who is willing to act as the project lead, and the main point of contact throughout the project. This simplifies the communication between our team and the sponsors - the project lead institution would act as the go-between with other sponsoring institutions to coordinate scheduling, testing, and administrative communication throughout the project.
2) Single point of feedback: Working with multiple institutions on a collaboratively funded feature can be challenging if we are receiving contradictory input during the testing and feedback phase of the project. Instead, we would ask that the project lead manage internal discussions among the sponsors during the testing phase, and again act as the single point of contact for feedback, so that any contradictions around design, ideal behavior, and change requests can be resolved prior to communicating with our development team.
3) Ideally, a single point of payment administration: Preferably, the project lead can process contributions from any other participating sponsors, so that Artefactual can supply and process a single invoice at the close of the project. We understand that this may not be possible for all institutions, and can explore alternatives with participating institutions if needed.
Additional deployment costs for co-sponsors
As with any major feature development carried out by Artefactual, the work will be included in the next major public release for the entire AtoM community to use, and will be immediately available in the 2.5 development branch in our public GiHub code repository. However, if the feature were sponsored collaboratively and all participating institutions wanted access to the enhancement prior to the next public release, there may be additional deployment costs for the participating co-sponsors, so Artefactual can assist in making the work available in a stable branch and deploying it for immediate use.
The prices included in the section above entitled "Costs not included in this table" assume deployment of the completed feature to a single institution. If co-sponsors wanted to access the feature prior to the next major public release and would like Artefactual's assistance in doing so, there will be additional costs, which we would handle on a time and materials basis for each institution. For institutions hosted by Artefactual, it would be possible to use support tickets to cover deployment costs.
Please feel free to contact us if you have any questions.