All Projects → Eyevinn → hls-ts-js

Eyevinn / hls-ts-js

Licence: other
HLS MPEG-TS parser library in Javascript

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to hls-ts-js

Ffmpeg
Mirror of https://git.ffmpeg.org/ffmpeg.git
Stars: ✭ 27,382 (+78134.29%)
Mutual labels:  hls, mpeg
transport-stream-online-segmenter
Transport stream web based HLS segmenter.
Stars: ✭ 30 (-14.29%)
Mutual labels:  hls, mpeg
colorsys-go
🎃 colorsys-go is a go package(or lib) for everyone to transform one color system to another. The transformation is among RGB, YIQ, HLS and HSV.
Stars: ✭ 75 (+114.29%)
Mutual labels:  hls
videojs-hlsjs
HLS playback plugin for videojs
Stars: ✭ 26 (-25.71%)
Mutual labels:  hls
vms
Streaming River IPTV server - proxy frontend
Stars: ✭ 27 (-22.86%)
Mutual labels:  hls
morsel
📇 Swift library for creating HLS playlists and fragmented mp4 files. Works on Linux and iOS.
Stars: ✭ 26 (-25.71%)
Mutual labels:  hls
nsplayer
A web player with shakaplayer & hls.js both supported
Stars: ✭ 23 (-34.29%)
Mutual labels:  hls
megacubo
A intuitive, multi-language and cross-platform IPTV player. Available for Windows, Android, Linux & macOS.
Stars: ✭ 134 (+282.86%)
Mutual labels:  hls
hls-rip
Tool for ripping m3u8 playlists/segments.
Stars: ✭ 14 (-60%)
Mutual labels:  hls
stalkerhek
Stalker portal proxy server that allows sharing account on multiple STB boxes and play on VLC.
Stars: ✭ 63 (+80%)
Mutual labels:  hls
Mp3Info
The fastest PHP library to extract mp3 meta information (duration, bitrate, samplerate and so on) and tags (id3v1, id3v2).
Stars: ✭ 114 (+225.71%)
Mutual labels:  mpeg
HLSCachingReverseProxyServer
A simple local reverse proxy server for HLS segment cache
Stars: ✭ 99 (+182.86%)
Mutual labels:  hls
mpegts
A simple implementation of mpegts(including muxer and demuxer)
Stars: ✭ 21 (-40%)
Mutual labels:  mpeg
emrah-buster-templates
The templates of the emrah-buster installer.
Stars: ✭ 57 (+62.86%)
Mutual labels:  hls
shaka-player-react
A simple React component wrapper for shaka-player
Stars: ✭ 79 (+125.71%)
Mutual labels:  hls
IPFSStreamingVideo
IPFS Streaming Video
Stars: ✭ 28 (-20%)
Mutual labels:  hls
wyzecam-hls
Converts MP4 files from WyzeCam NFS to HLS stream. Much more stable alternative to RTSP firmware.
Stars: ✭ 58 (+65.71%)
Mutual labels:  hls
hms-video-demo-android
HUAWEI Video Kit supports streaming media in 3GP, MP4, or TS format and compliant with HTTP/HTTPS, HLS, or DASH. The Kit also provides abundant playback controls, delivering personalized video experiences to users.
Stars: ✭ 22 (-37.14%)
Mutual labels:  hls
hlsq
A small CLI for adding some color to your HLS manifests along with some basic filtering
Stars: ✭ 64 (+82.86%)
Mutual labels:  hls
ZLMediaKit
WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
Stars: ✭ 7,790 (+22157.14%)
Mutual labels:  hls

Build Status Coverage Status

A Javascript library to parse Apple HLS MPEG Transport Stream segments

Usage (Node JS)

npm install --save hls-ts

The library implements the Writable stream interface and acts a a "sink". For example to download and parse an HLS MPEG Transport Stream segment:

const request = require("request");
const hlsTs = require("hls-ts");

request.get("http://example.com/seg10.ts")
.pipe(hlsTs.parse())
.on("finish", function() {

  // Obtain all programs found in the Transport Stream
  const programs = hlsTs.programs;

  // Obtain all packets for a specific program stream
  const avcPackets = hlsTs.getPacketsByProgramType("avc");

  // Obtain the payload for a program stream
  const avcPayload = hlsTs.getDataStreamByProgramType("avc");

  // where avcPayload.data is a Uint8Array
  const avcParser = hlsTs.createAvcParser(avcPayload);

  // Obtain NAL units
  const nalUnits = avcParser.getNalUnits();
});

Usage (Browser version)

<script src="dist/hls-ts.min.js"></script>
<script>
  var xhr = new XMLHttpRequest();
  var url = "http://example.com/hls/seg-10s.ts";
  var parser = new window.HlsTs({ debug: false });
  xhr.responseType = "arraybuffer";
  xhr.onloadend = function() {
    var buffer = xhr.response;
    var data = new Uint8Array(buffer);
    parser.parse(data).then(function() {
      // Obtain all programs found in the Transport Stream
      var programs = parser.getPrograms();

      // Obtain all packets for a specific program stream
      var avcPackets = parser.getPacketsByProgramType("avc");
      
      // Obtain the payload for a program stream
      var avcPayload = parser.getDataStreamByProgramType("avc");

      // where avcPayload.data is a Uint8Array
      var avcParser = parser.createAvcParser(avcPayload);

      // Obtain NAL units
      var nalUnits = avcParser.getNalUnits();
    }).catch(function(err) { console.error(err.message); }).then(done);
  };
  xhr.open("GET", url);
  xhr.send();
</script>

API Documentation

Find API documentation here: https://inspect.eyevinn.technology/docs/index.html

Contributing

All contributions are welcome but before you submit a Pull Request make sure you follow the same code conventions and that you have written unit tests

About Eyevinn Technology

Eyevinn Technology is an independent consultant firm specialized in video and streaming. Independent in a way that we are not commercially tied to any platform or technology vendor.

At Eyevinn, every software developer consultant has a dedicated budget reserved for open source development and contribution to the open source community. This give us room for innovation, team building and personal competence development. And also gives us as a company a way to contribute back to the open source community.

Want to know more about Eyevinn and how it is to work here. Contact us at [email protected]!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].