11
22// nodejs child_process
3- var childProcess = require ( 'child_process' ) ;
3+ var childProcessSpawn = require ( 'child_process' ) . spawn ;
44
55/**
66 *
@@ -22,8 +22,15 @@ var analyzer = function analyzerConstructor() {
2222 */
2323analyzer . prototype . getData = function getDataFunction ( trackPath , callback ) {
2424
25+ var stdoutOuputString = '' ;
26+ var stderrOuputString = '' ;
27+
28+ var trackData = { } ;
29+
30+ //console.log(trackPath);
31+
2532 // ffprobe file data
26- var ffprobeSpawn = childProcess . spawn (
33+ var ffprobeSpawn = childProcessSpawn (
2734 'ffprobe' ,
2835 [
2936 trackPath ,
@@ -35,31 +42,30 @@ analyzer.prototype.getData = function getDataFunction(trackPath, callback) {
3542 'json'
3643 ]
3744 ) ;
38-
39- var stdoutOuputString = '' ;
40- var stderrOuputString = '' ;
45+
46+ //ffprobeSpawn.stdout.setEncoding('utf8') ;
47+ ffprobeSpawn . stderr . setEncoding ( 'utf8' ) ;
4148
4249 // ffprobe recieves data on stdout
4350 ffprobeSpawn . stdout . on ( 'data' , function ( data ) {
4451
4552 stdoutOuputString += data ;
4653
4754 } ) ;
48-
49- var trackData = { } ;
5055
5156 ffprobeSpawn . stdout . on ( 'end' , function ( data ) {
5257
5358 //console.log('ffprobeSpawn stdout end');
59+ //console.log(stdoutOuputString);
5460
5561 if ( stdoutOuputString !== '' ) {
5662
57- //console.log('stdoutOuput');
58- //console.log(stdoutOuputString);
59-
6063 // parse the ffprobe json string response
6164 var stdoutOuput = JSON . parse ( stdoutOuputString ) ;
6265
66+ //console.log(stdoutOuput);
67+ //console.log(Object.keys(stdoutOuput).length);
68+
6369 if ( Object . keys ( stdoutOuput ) . length > 0 ) {
6470
6571 // create a trackdata object with the informations we need
@@ -70,13 +76,13 @@ analyzer.prototype.getData = function getDataFunction(trackPath, callback) {
7076 trackData . channels = stdoutOuput [ 'streams' ] [ 0 ] [ 'channels' ] ;
7177
7278 }
79+
80+ //console.log(trackData);
7381
7482 }
7583
7684 } ) ;
7785
78- ffprobeSpawn . stderr . setEncoding ( 'utf8' ) ;
79-
8086 ffprobeSpawn . stderr . on ( 'data' , function ( data ) {
8187
8288 stderrOuputString += data ;
@@ -106,13 +112,18 @@ analyzer.prototype.getData = function getDataFunction(trackPath, callback) {
106112
107113 } else {
108114
115+ //console.log(trackData);
116+ //console.log(Object.keys(trackData).length);
117+
109118 // if the trackdata object isnt empty
110119 if ( Object . keys ( trackData ) . length > 0 ) {
111120
112121 callback ( false , trackData ) ;
113122
114123 } else {
115124
125+ //console.log('ffprobe did not output any data');
126+
116127 callback ( 'ffprobe did not output any data' ) ;
117128
118129 }
@@ -158,9 +169,6 @@ analyzer.prototype.getPeaks = function getValuesFunction(trackPath, peaksAmountR
158169
159170 if ( ! error ) {
160171
161- //console.log('ffprobe track data: ');
162- //console.log(trackData);
163-
164172 if ( peaksAmountRaw !== undefined ) {
165173
166174 var peaksAmount = parseInt ( peaksAmountRaw ) ;
@@ -172,7 +180,7 @@ analyzer.prototype.getPeaks = function getValuesFunction(trackPath, peaksAmountR
172180 }
173181
174182 // get audio pcm as 16bit little endians
175- var ffmpegSpawn = childProcess . spawn (
183+ var ffmpegSpawn = childProcessSpawn (
176184 'ffmpeg' ,
177185 [
178186 '-i' ,
@@ -195,6 +203,9 @@ analyzer.prototype.getPeaks = function getValuesFunction(trackPath, peaksAmountR
195203 var stdoutOuputString = '' ;
196204 var stderrOuputString = '' ;
197205
206+ //ffmpegSpawn.stdout.setEncoding('utf8');
207+ ffmpegSpawn . stderr . setEncoding ( 'utf8' ) ;
208+
198209 var samples = [ ] ;
199210
200211 ffmpegSpawn . stdout . on ( 'data' , function ( buffer ) {
@@ -300,8 +311,6 @@ analyzer.prototype.getPeaks = function getValuesFunction(trackPath, peaksAmountR
300311
301312 } ) ;
302313
303- ffmpegSpawn . stderr . setEncoding ( 'utf8' ) ;
304-
305314 ffmpegSpawn . stderr . on ( 'data' , function ( data ) {
306315
307316 //console.log(data.toString());
0 commit comments