Jump to content

HLS (and/or Mpeg-DASH) *within* Library folder structures.


syadnom
 Share

Go to solution Solved by Luke,

Recommended Posts

syadnom

I'm working on ways to distribute videos efficiently and timely.   One big issue is that BIG video files are a real hassle to distribute in a timely manner and require a whole lot of waiting around even using resiliosync or rsync etc.

 

By allowing videos to be put into a folder with the Movie/Episode name and an m3u8 index file and HLS or MPEG-DASH encoding a few advantages and some bonus features become available.

 

1)  The small files are much easier to sync

2)  The beginning starts arriving and is playable right away

3)  If multiple encoding are in the m3u8 file, then the client could select it's own stream sans any Emby transcoding efforts.

bonus

m3u8 indexes can have full URLs to video files, which means video chunks could be hosted on a webservers and effectively distributed, or roll-our-own CDNs can be made and simple DNS round robin for video files can be implemented in the HLS files.

Link to comment
Share on other sites

  • Solution

Hi, there isn't native support for this, but maybe it will work via strm files and having the .strm point to the main manifest. 

  • Like 1
Link to comment
Share on other sites

syadnom

wow @@Luke, that absolutely worked with no effort whatsoever.  Pasted my HLS URL into a file /Movies/MovieName/MovieName.strm, scanned the Movies folder and boom, it was there.

 

So to test my theory here, I've just starting encoding the HLS chunks with ffmpeg and scanned the movie folder.  It was quite happy picking up the movie just by the filename being there.  I open up and hit play and I'm watching the chunks just barely behind my encode, like butter.

So, I changed the URL up to point through my squid proxy and boom, squid caches the .ts parts.  

 

Then I start an rsync off to a remote web server sitting in AWS and I update the URL to point there.  Works like a champ.

 

Best hidden feature ever.  

Now, I'm not sure how Emby works here, I'm assuming that Emby is consuming the media and wont/cant direct stream it to the client device right?  ie, this trick really doesn't mean I can encode multiple resolutions and be able to skip Emby in the data path right?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...