Closed joncameron closed 3 weeks ago
May not be possible to added codec info to m3u8 files via nginx vod module.
Kevin Price from UT reported trying to use Ramp to play items; in the backend they're delivering mp3 files with the same mp4 container and they reported it's not supported in video.js. There was a Ramp ticket to investigate but we identified it as a video.js and it was closed. This could be different from this use case, or it could be the same issue popping up.
Could be a way to do support in video.js besides adding the codec to the m3u8.
Or; could we have stream protection but just on progressive download of the mp3 files?
Can video.js handle mp3s outside of the m3u8 context?
https://github.com/samvera-labs/ramp/issues/64, this could be a related issue?
We think this should work across devices and browsers, but should do a basic test to make sure mp3 is supported nicely in Ramp in all contexts.
Should also test with a very large file.
Item for testing: https://demo.avalonmediasystem.org/media_objects/9g54xh933
No token security on the stream at all; need to add the same auth we have on other streams
What would the ingest look like?
Need to test the API request and make sure it works to get it into Avalon in a way that the changes Chris has made still work. There is a possibility we'll need to make code changes to get that to work. MSU planning to use bib identifiers to pull the metadata in from an external ILS via SRU/z39.50.
Code commits in Avalon need to go into core; nginx config probably needs to go into avalon-docker.
Test MP3 on demo site played find across browsers and devices. There may sometimes be a lag in scrubbing straight to the end, but would be best to test a larger file to see if can get that to replicate reliably.
Follow-up issue for testing and further refinement: https://github.com/avalonmediasystem/avalon/issues/5976.
Jon and Chris tested with several MP3s downloaded from Internet Archive ranging from 45 minutes to 60 minutes. Seeking seemed to work. Occasionally, seeking didn't quite end up where the user clicked; this may have been due to which range was downloaded, but overall it seemed workable.
More nginx config tinkering needed to ensure that auth is working. For these mp3 files, nginx is completely ignoring auth. Effort estimate for this is a 3. see #6002
Some code changes were made to Avalon to get skip HLS and just do progressive download (put MP3 URLs in the manifest). This is sitting in demo branch only, so needs to be brought into core and have tests added for it. Effort estimate is low 2. see #6003
Also useful to develop brief instructions for where to put the files and API to use to ingest them.
Description
How can Avalon serve mp3 files? The Internet Archive archives audio material as FLAC and MP3 formats, and for large collections it should be possible to accommodate record creation in Avalon for large volumes of content if Avalon could be able to serve MP3 files, instead of the AAC audio in an MP4 container that is usually streamed.
The are multiple ways to try this:
HLS manifests aren't working when the stream is MP3 audio in an MP4 container. Adding this explicitly to the HLS manifest should allow this content to be playable in the browser as expected, but it doesn't appear to work and this may be a video.js issue.
Examples
https://demo.avalonmediasystem.org/media_objects/cv43nx098 MP3 with "skip transcoding":
This item is unable to be played because of missing streaming derivatives. Please contact support to report this error: avalon@dlib.indiana.edu.
Done Looks Like
Reference
https://github.com/kaltura/nginx-vod-module