All Projects → goldvideo → demuxer

goldvideo / demuxer

Licence: MIT license
A tool for demux ts/mp4/flv by typescript. Support HEVC/AVC/AAC codec

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to demuxer

Node Video Lib
Node.js Video Library / MP4 & FLV parser / MP4 builder / HLS muxer
Stars: ✭ 264 (+144.44%)
Mutual labels:  h264, mp4, hls, hevc, h265
Jmuxer
jMuxer - a simple javascript mp4 muxer that works in both browser and node environment.
Stars: ✭ 222 (+105.56%)
Mutual labels:  h264, mp4, hls, aac
smart rtmpd
RTMP server, smart, compact, high performance(c, c++), high concurrency, easy to maintain, easy to deploy, (supports multiple operating systems Windows and Linux, ARM, FreeBSD)
Stars: ✭ 159 (+47.22%)
Mutual labels:  h264, hls, hevc, h265
Testing Video
Generator of test video files for testing your media playback devices and calibrate TV sets
Stars: ✭ 70 (-35.19%)
Mutual labels:  h264, mp4, hevc, h265
uci
Ultra Compact Image (UCI)
Stars: ✭ 79 (-26.85%)
Mutual labels:  h264, hevc, h265, avc
Media Stream Library Js
JavaScript library to handle media streams on the command line (Node.js) and in the browser.
Stars: ✭ 192 (+77.78%)
Mutual labels:  h264, mp4, aac
Awesome Video
A curated list of awesome streaming video tools, frameworks, libraries, and learning resources.
Stars: ✭ 397 (+267.59%)
Mutual labels:  mp4, hls, hevc
Nodeplayer.js
Pure JavaScrip HTML5 live stream player
Stars: ✭ 157 (+45.37%)
Mutual labels:  h264, aac, h265
rrtsp client
Rust high level RTSP client
Stars: ✭ 12 (-88.89%)
Mutual labels:  h264, mp4, h265
Haishinkit.swift
Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
Stars: ✭ 2,237 (+1971.3%)
Mutual labels:  h264, hls, aac
Trinity
android video record editor muxer sdk
Stars: ✭ 609 (+463.89%)
Mutual labels:  h264, mp4, aac
Ott Packager
OTT/ABR streaming encoder (H264/HEVC) and packager for DASH and HLS
Stars: ✭ 148 (+37.04%)
Mutual labels:  h264, hls, hevc
Digital video introduction
A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding).
Stars: ✭ 12,184 (+11181.48%)
Mutual labels:  h264, hls, h265
Ffmpeg
Mirror of https://git.ffmpeg.org/ffmpeg.git
Stars: ✭ 27,382 (+25253.7%)
Mutual labels:  mp4, hls, hevc
Voukoder
Provides an easy way to include the FFmpeg encoders in other windows applications.
Stars: ✭ 436 (+303.7%)
Mutual labels:  h264, hevc, h265
Ksylive ios
金山云直播SDK [ iOS推流+播放 ]融合版 支持美颜滤镜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Audio Mixer)、混响(Reverb)、画中画(PIP)
Stars: ✭ 861 (+697.22%)
Mutual labels:  h264, aac, h265
Swiftffmpeg
A Swift wrapper for the FFmpeg API
Stars: ✭ 243 (+125%)
Mutual labels:  h264, mp4, hevc
Nginx Http Flv Module
Media streaming server based on nginx-rtmp-module. In addtion to the features nginx-rtmp-module provides, HTTP-FLV, GOP cache and VHOST (one IP for multi domain names) are supported now.
Stars: ✭ 2,063 (+1810.19%)
Mutual labels:  h264, aac
BAT FFMPEG
Batch script files for FFMPEG (Microsoft Windows and DOS, OS/2 🦄)
Stars: ✭ 104 (-3.7%)
Mutual labels:  mp4, aac
video-quality-metrics
Test specified presets/CRF values for the x264 or x265 encoder. Compares VMAF/SSIM/PSNR numerically & via graphs.
Stars: ✭ 87 (-19.44%)
Mutual labels:  hevc, avc

A tool for demux ts/mp4/flv by typescript.

This tool can be used on platforms such as HTML5 players or Node.js

npm version Downloads Build Status

Data flow diagram

Feature

  • Support push streaming-data to demux

  • Tree-shakable (The version coded with full code does not need to worry about the reference size. When the business only refers to a certain format of decoding, the overall code supports tree-shaking)

  • Any-combination packaging (These formats can be packaged according to requirements, users do not need to package all the code)

Demos

How to start?

  1. install

    npm i demuxer
  2. Setup

    import { TSDemux, FLVDemux, MP4Demux, Events } from 'demuxer';
    
    const demux = new TSDemux();
    // const demux = new FLVDemux();
    // const demux = new MP4Demux();
    
    // The data is spit out in a streaming manner,
    // and the first data is emitted as soon as possible.
    demux.on(Events.DEMUX_DATA, (e) => {
        console.log(e);
    
        // if (e.stream_type === 15) {
        //     console.log(e)
        // }
    });
    
    demux.on(Events.DONE, (e) => {
        // consumed & flushed all piped buffer.
    });
    
    // buffer -> video bytes ArrayBuffer
    demux.push(buffer, {
        // Support push part of the data for parsing
        // When done is set to true, if the data is decoded and there is no remaining data, the data is considered to have been pushed and Events.DONE will be emitted.
        // When done is set to false, Events.DONE will not be emit, waiting for subsequent data push
        done: true
    });
  3. Debug

    var demuxer = new TSDemux({
        debug: true
    });
    
  4. Demuxer Options

    let options = {
        // Setting options.debug = true; will turn on debug logs on JS console.
        debug: true
    };
    
    var demuxer = new TSDemux(options);
    // var demuxer = new MP4Demux(options);
    // var demuxer = new FLVDemux(options);
    

About decoding MP4 raw data (h264/hevc/aac)

Developer should parse the data of the mp4 header, and then locate the pos of the data information in the mdat according to the information described in the mp4 header.

About how to integrate Demuxer with Worker

Because the third party is likely to be internally built by the worker tool, in order not to conflict and redundancy with the worker tool, the worker is implemented by the user.

Lang

中文文档

LICENSE

MIT

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].