New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

pipe2pam

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pipe2pam

Parse individual pam images from an ffmpeg pipe when output video codec(-c:v) is set to pam and format(-f) is set to image2pipe.

latest
Source
npmnpm
Version
0.7.1
Version published
Maintainers
1
Created
Source

pipe2pam

Buy me a coffee Donate via PayPal build Build status GitHub issues GitHub license npm

Parse individual pam images from an ffmpeg pipe when the output video codec (-c:v) is set to pam and the format (-f) is set to image2pipe. The supported pixel formats (-pix_fmt) are rgb24, rgba, gray, and monob. Pam is an image type similar to ppm, pbm, and pgm. It has a small header that is followed by an uncompressed array of pixel data. This can be used as an alternate way to get pixel data instead of generating jpegs and using canvas. It is currently being used for a video motion detection project.

installation:

npm install pipe2pam --save

usage:

The following example uses ffmpeg's testsrc to simulate a video input and generates 100 downscaled grayscale pam images at a rate of 1 per second. The pam images are piped in from ffmpeg's stdout and output a pam image object. Pipe2Pam dispatches a "data" event, which contains a pam image object. The object contains the entire pam image, plus additional data such as width, height, depth, maxval, tupltype, and an array of pixels. It can also pipe the object to a pipe reader for further use, such as pixel comparison between 2 pam images:

const Pipe2Pam = require('pipe2pam');

const { spawn } = require('child_process');

let counter = 0;

const params = [
    '-loglevel',
    'quiet',
    '-re',
    '-f',
    'lavfi',
    '-i',
    'testsrc=size=1920x1080:rate=15',
    '-an',
    '-c:v',
    'pam',
    '-f',
    'image2pipe',
    '-pix_fmt',
    //'rgb24',
    //'rgba',
    'gray',
    //'monob',
    '-vf',
    'fps=1,scale=iw*1/6:ih*1/6',
    '-frames',
    '100',
    'pipe:1'
];

const pipe2pam = new Pipe2Pam();

pipe2pam.on('data', (data) => {
    console.log(data);
    console.log('received pam', ++counter);
});

const ffmpeg = spawn('ffmpeg', params);

ffmpeg.on('error', (error) => {
    console.log(error);
});

ffmpeg.on('exit', (code, signal) => {
    console.log('exit', code, signal);
});

ffmpeg.stdout.pipe(pipe2pam);

testing:

Clone the repository

git clone https://github.com/kevinGodell/pipe2pam.git

Change into the directory

cd pipe2pam

Initialize with npm

npm install

Start the tests

npm test

Keywords

ffmpeg

FAQs

Package last updated on 09 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts