Skip to content

Latest commit

 

History

History
49 lines (44 loc) · 1.92 KB

README.md

File metadata and controls

49 lines (44 loc) · 1.92 KB

hlsProxy

This is local nodejs caching media proxy.

Capability:

  • Buffer all media segments from playlist
  • Buffer and return m3u8 with delay to clients
  • Decrease wan network usage
  • Increase stability

Server installation

  • Clone repository
  • Modify list.json
  • Install modules npm install
  • Run application node app.js

Client usage

Example from hls.js example/simple.html

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<!-- Or if you want a more recent canary version -->
<!-- <script src="https://cdn.jsdelivr.net/npm/hls.js@canary"></script> -->
<video id="video"></video>
<script>
  var playlistUrl="http://127.0.0.1:8080/RTD/list.m3u8";
  var video = document.getElementById('video');
  if(Hls.isSupported()) {
    var hls = new Hls();
    hls.loadSource(playlistUrl);
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });
 }
 // hls.js is not supported on platforms that do not have Media Source Extensions (MSE) enabled.
 // When the browser has built-in HLS support (check using `canPlayType`), we can provide an HLS manifest (i.e. .m3u8 URL) directly to the video element throught the `src` property.
 // This is using the built-in support of the plain video element, without using hls.js.
 // Note: it would be more normal to wait on the 'canplay' event below however on Safari (where you are most likely to find built-in HLS support) the video.src URL must be on the user-driven
 // white-list before a 'canplay' event will be emitted; the last video event that can be reliably listened-for when the URL is not on the white-list is 'loadedmetadata'.
  else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = playlistUrl;
    video.addEventListener('loadedmetadata',function() {
      video.play();
    });
  }
</script>