Oatpp/example-hls-media-stream - GitHub
Có thể bạn quan tâm
Example project how-to build HLS-streaming server using oat++ (AKA oatpp) Async API.
Live stream is tested with Safari-Browser and VLC-player
See more:
- Oat++ Website
- Oat++ Github Repository
- Get Started
Overview
Server generates infinite .m3u8 playlist from the pre-generated playlist_live.m3u8 file in the video folder. File video/playlist_live.m3u8 together with video chunks is generated using ffmpeg.
Server is built using oat++ Async-Api and has following endpoints:
- ("GET", "/", Root) - Starting html-page aka index.html
- ("GET", "video/*", Video) - Embedded video html-page
- ("GET", "media/live", Live) - Infinite HLS playlist for live-stream describing video chunks
- ("GET", "media/*", Static) - Endpoint serving media files with range requests support
Project layout
|- CMakeLists.txt // projects CMakeLists.txt |- src/ // source folder |- test/ // test folder |- utility/install-oatpp-modules.sh // utility script to install required oatpp-modules. | |- video/ // media files and playlists here |- generate_pls.sh // example how to use ```ffmpeg``` to generate initial playlist and video chunks |- playlist_live.m3u8 // playlist used to generate infinite playlist for http-live-streaming - src/ | |- controller/ // Folder containing UserController where all endpoints are declared |- hls/ // Playlist generator is here |- Utils.hpp // Utils |- AppComponent.hpp // Service config |- App.cpp // main() is hereBuild and Run
Using CMake
Requires
- oatpp module installed. You may run utility/install-oatpp-modules.sh script to install required oatpp modules.
In Docker
$ docker build -t example-hls . $ docker run -p 8000:8000 -t example-hlsScreenshots



Notes
Urls
- localhost:8000 - Index page
- localhost:8000/media/live - Live stream made from {repo}/video/video1.mp4 and {repo}/video/video2.mp4 played in the loop
Files
- {repo}/video/playlist_live.m3u8 - playlist used for live HLS streaming
- {repo}/video/generate_pls.sh - example script used to generate sub-playlists and video fragmets using ffmpeg tool. #EXTINF sections of sub-playlists then have to be manualy moved to playlist_live.m3u8.
Note
If app can't find playlist of video files then specify full-file-paths for {repo}/video/playlist_live.m3u8 file and {repo}/video folder in AppComponent.hpp
Từ khóa » Http Live Streaming M3u8 Example
-
HLS M3u8 Test Streams & MPEG-DASH » Examples | Bitmovin
-
Free HLS M3u8 URLs For Testing HLS Players [Updated] - OTTVerse
-
Example Playlists For HTTP Live Streaming - Apple Developer
-
Examples - HTTP Live Streaming - Apple Developer
-
Introduction To HTTP Live Streaming: HLS On Android And More
-
Playing M3u8 Files With HTML Video Tag - Streaming - Stack Overflow
-
Http-live-streaming · GitHub Topics
-
HTTP Live Streaming - Wikipedia
-
What Is HLS Streaming And When Should You Use It? [2022 Update]
-
Hls.js Demo
-
HTTP Live Streaming Tutorial - YouTube
-
RFC 8216: HTTP Live Streaming
-
Setting Up HLS Live Streaming Server Using NGINX - Peer5 P2P Docs
-
Using HTTP Live Streaming (HLS) For Live And On‐demand Audio ...