Background:
The HLS RFC doesn't seem to mention anything about this. I'm creating a script that generates a 720p.m3u8 file for a series of 720p resolution .ts files. Then it uses FFMPEG to generate 480p .ts files using the 720p .ts files and generates a 480p.m3u8 file.
Then it generates a master playlist.m3u8 file which points to the 720p.m3u8 and 480p.m3u8 files.
Master:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=3145728,RESOLUTION=1280x720"
720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1572864,RESOLUTION=854x480"
480p.m3u8
Question:
Is it ok to have all the
.tsfiles of all resolutions stored in the same folder along with their respectivem3u8files and the masterm3u8file? Or should the.tsand.m3u8files of each resolution be stored in separate folders and the masterm3u8be in the parent folder? Like this:#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=3145728,RESOLUTION=1280x720"
720p_folder/720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1572864,RESOLUTION=854x480"
480p_folder/480p.m3u8The multivariant playlist here shows
m3u8locations as full URL'shttp://example.com/low/index.m3u8. Is that how it should be, or can it be a relative folder path like I've shown above (480p_folder/480p.m3u8)?
This is for accessing via VideoJS from various client browsers across the world, and the .ts and .m3u8 files will be stored on an AWS S3 server.
CodePudding user response:
Folders for the different renditions are commonly used but there is absolutely no requirement for it.
All URLs in a Multivariant playlist (used to be called master playlist) and in the different variant playlists can be relative or absolute, without really any restrictions. Things to consider here are:
- With absolute URLs, it's easy to host just the playlist files elsewhere while all URLs will still work
- With relative URLs, it's easy to move or copy the content to other locations as long as m3u8 playlist and media files are kept together.
As a side note, you should consider using mp4 chunks instead of ts unless you have a technical reason not to. There are hardly any devices left that only support ts but not mp4, and for using some HLS features, the use of mp4 is required (at least for Apple devices), e.g.:
