Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HLS pass-thought #5426

Open
RinCat opened this issue Nov 23, 2022 · 5 comments
Open

HLS pass-thought #5426

RinCat opened this issue Nov 23, 2022 · 5 comments

Comments

@RinCat
Copy link

RinCat commented Nov 23, 2022

Describe the problem to be solved

OBS and some other live streaming software now support generate HLS fragments directly, and HDR live streaming requests use it (RTMP is not supported)
https://support.google.com/youtube/answer/10265272

Describe the solution you would like

So a feature that can pass-thought HLS (upload via https) without server side re-encode / re-packing is more efficient and necessary.

@stevespaw
Copy link

I also would love to see Direct m3u8 HLS as a "live" source :-)

@emansom
Copy link
Contributor

emansom commented Jan 7, 2023

Implementing this would yield the lowest possible ingestion time of content when streaming with OBS (configured to output in HLS).

As it bypasses the need to run CPU intensive ffmpeg.

For this to work, PeerTube needs to observe a directory (using inotify) where new .ts and .m3u8 files are being appended to.

And use those files as source for a livestream object to create in the database.

Docs should include a chapter on how to configure OBS, WireGuard VPN, NFS share and PeerTube.

@kontrollanten
Copy link
Contributor

Interesting! How does this scale when there's thousand of viewers? Except the bypass of ffmpeg, does it impact the overall performance? Is it possible to combine with object storage?

@emansom
Copy link
Contributor

emansom commented Jan 7, 2023

Interesting! How does this scale when there's thousand of viewers? Except the bypass of ffmpeg, does it impact the overall performance? Is it possible to combine with object storage?

It'd generate similar HLS (.ts fragments and .m3u8 index) as PeerTube would when it invokes ffmpeg.

Possibly PeerTube should/could modify the index somewhat and move files around, to remain compatible with the current storage implementation.

To horizontally scale one could setup multiple PeerTube instances to offer redundancy.

For linear scaling one could configure LVM caching, Ceph/MinIO caching etc.

@stevespaw
Copy link

I think that this is similar to this issue 947

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants