Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var fs = require('fs');
var mp4boxModule = require('mp4box');
if (process.argv.length > 3) {
var mp4box = new mp4boxModule.MP4Box();
mp4box.onReady = function(info) {
var found = false;
for (var i = 0; i < info.tracks.length; i++) {
if (info.tracks[i].id == process.argv[3]) {
mp4box.setExtractionOptions(info.tracks[i].id);
found = true;
}
}
if (found === false) {
console.log("Track id "+process.argv[3]+" not found in file "+process.argv[2]);
}
mp4box.start();
};
mp4box.onSamples = function (id, user, samples) {
console.log("Received "+samples.length+" samples on track "+id+" for object "+user);
for (var i = 0; i < samples.length; i++) {
var fs = require('fs');
var mp4boxModule = require('mp4box');
if (process.argv.length > 2) {
var mp4box = new mp4boxModule.MP4Box();
var arrayBuffer = new Uint8Array(fs.readFileSync(process.argv[2])).buffer;
arrayBuffer.fileStart = 0;
mp4box.appendBuffer(arrayBuffer);
console.log(mp4box.getInfo());
} else {
console.log("usage: node info.js ");
}
var fs = require('fs');
var mp4boxModule = require('mp4box');
if (process.argv.length < 5) {
console.log("usage: node fragment.js ");
return;
}
var out = fs.createWriteStream(process.argv[5]);
var mp4box = new mp4boxModule.MP4Box();
mp4box.onReady = function (info) {
var found = false;
var segOptions = { nbSamples: +process.argv[4] };
console.log("Movie information received");
for (var i = 0; i < info.tracks.length; i++) {
if (info.tracks[i].id != process.argv[3]) continue;
console.log("Segmenting track "+info.tracks[i].id+" with "+segOptions.nbSamples+" per segment");
mp4box.setSegmentOptions(info.tracks[i].id, null, segOptions);
found = true;
}
if (found) {
var segs = mp4box.initializeSegmentation();
out.write(toBuffer(segs[0].buffer));
mp4box.seek(0, true);
mp4box.start();
var fs = require('fs');
var MP4Box = require('mp4box');
if (process.argv.length < 3) {
console.log("usage: node mp4codec.js ");
return;
}
var mp4boxfile = MP4Box.createFile();
var stopParse = false;
mp4boxfile.onReady = function (info) {
var mime = 'video/mp4; codecs=\"';
for (var i = 0; i < info.tracks.length; i++) {
if (i !== 0) mime += ',';
mime+= info.tracks[i].codec;
}
mime += '\"';
console.log(mime);
stopParse = true;
}
var filePos = 0;
var filereader = fs.createReadStream(process.argv[2]);
filereader.on('readable', function () {
return new Promise(function(resolve, reject) {
var readBlock = readBlockFactory();
mp4boxFile = MP4Box.createFile(false);
var uintArr;
//Will store timing data to help analyse the extracted data
var timing = {};
mp4boxFile.onError = reject;
//When the data is ready, look for the right track
mp4boxFile.onReady = function(videoData) {
for (var i = 0; i < videoData.tracks.length; i++) {
//Find the metadata track. Collect Id and number of samples
if (videoData.tracks[i].codec == 'gpmd') {
trackId = videoData.tracks[i].id;
nb_samples = videoData.tracks[i].nb_samples;
timing.start = videoData.tracks[i].created;
} else if (videoData.tracks[i].type == 'video') {
var vid = videoData.tracks[i];
//Deduce framerate from video track