Efficient way to create variant playlists from mp4 for HLS

HandBrake for Mac support
Forum rules
An Activity Log is required for support requests. Please read How-to get an activity log? for details on how and why this should be provided.
Post Reply
andreid
Posts: 2
Joined: Sat Apr 17, 2021 6:03 pm

Efficient way to create variant playlists from mp4 for HLS

Post by andreid »

Description of problem or question:

I am totally new to video encoding and options, and just learned about Apple's HLS requirements.

So far, I've been able to get something working for my iOS app. However, I find the entire process to be very slow and manual. Now, having to repeat this for several more locales (video translations), I can't imagine there isn't a better way.

Controlling bitrate

To have control over the bitrate, I use HandBrake to create a new .mp4 file with the appropriate video encoder setting, for each bitrate I want (192k, 400k, 1m, etc.). THEN, I move onto creating the playlists. This alone takes several minutes--is there a better way? tsrecompressor seemed close, but it just streams to a local port and doesn't save any playlists a4.

Creating playlists from MP4

Then I use Apple's suite of command-line tools (mediafilesegmenter, variantplaylistcreator, mediastreamvalidator, hlsreport) to generate the playlists, combine into a master playlist, validate, etc. I suppose this part could be somewhat automated with a script. I've seen others use FFMPEG, but I think the latter 3 Apple tools would still need to be sequentially applied.

Do you see anything that can be obviously optimized?


HandBrake version (e.g., 1.0.0):
1.3.0



Operating system and version (e.g., Ubuntu 16.04 LTS, macOS 10.13 High Sierra, Windows 10 Creators Update):

macOS
mduell
Veteran User
Posts: 8187
Joined: Sat Apr 21, 2007 8:54 pm

Re: Efficient way to create variant playlists from mp4 for HLS

Post by mduell »

HB isn't really the tool for HLS. ffmpeg can be scripted to do it pretty easily.

https://docs.peer5.com/guides/production-ready-hls-vod/
Post Reply