@yudzxml/baileys 7.3.4 → 7.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,8 @@ const {
19
19
  promises,
20
20
  createReadStream,
21
21
  createWriteStream,
22
- writeFileSync
22
+ writeFileSync,
23
+ existsSync
23
24
  } = require("fs")
24
25
  const {
25
26
  parseBuffer,
@@ -445,28 +446,60 @@ async function convertToOpusBuffer(buffer, logger) {
445
446
  }
446
447
  }
447
448
 
449
+
448
450
  async function convertToMp4Buffer(buffer, logger) {
451
+ const tmp = join(__dirname, '../src', `${Date.now()}.tmp`)
452
+ const out = `${tmp}.mp4`
453
+ const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path
454
+ const { spawn } = require('child_process')
455
+
449
456
  try {
450
- const { PassThrough } = require('stream');
451
- const ff = require('fluent-ffmpeg');
452
- return await new Promise((resolve, reject) => {
453
- const inStream = new PassThrough();
454
- const outStream = new PassThrough();
455
- const chunks = [];
456
- inStream.end(buffer);
457
- ff(inStream)
458
- .videoCodec('libx264')
459
- .audioCodec('aac')
460
- .format('mp4')
461
- .outputOptions(['-preset', 'veryfast', '-crf', '23', '-movflags', 'faststart', '-map_metadata', '-1'])
457
+ await promises.writeFile(tmp, buffer)
458
+
459
+ await new Promise((resolve, reject) => {
460
+ spawn(ffmpegPath, [
461
+ '-y',
462
+ '-i', tmp,
463
+ '-c:v', 'libx264',
464
+ '-c:a', 'aac',
465
+ '-preset', 'veryfast',
466
+ '-crf', '23',
467
+ '-movflags', 'faststart',
468
+ '-map_metadata', '-1',
469
+ '-f', 'mp4',
470
+ out
471
+ ])
462
472
  .on('error', reject)
463
- .on('end', () => resolve(Buffer.concat(chunks)))
464
- .pipe(outStream, { end: true });
465
- outStream.on('data', c => chunks.push(c));
466
- });
473
+ .on('close', code => {
474
+ if (code !== 0) {
475
+ return reject(
476
+ new Error(`FFmpeg exited with code ${code}`)
477
+ )
478
+ }
479
+ resolve()
480
+ })
481
+ })
482
+
483
+ const result = await promises.readFile(out)
484
+
485
+ await promises.unlink(tmp)
486
+ await promises.unlink(out)
487
+
488
+ return result
467
489
  } catch (e) {
468
- logger?.debug(e);
469
- throw e;
490
+ logger?.debug?.(e)
491
+
492
+ try {
493
+ if (existsSync(tmp)) {
494
+ await promises.unlink(tmp)
495
+ }
496
+
497
+ if (existsSync(out)) {
498
+ await promises.unlink(out)
499
+ }
500
+ } catch {}
501
+
502
+ throw e
470
503
  }
471
504
  }
472
505
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yudzxml/baileys",
3
- "version": "7.3.4",
3
+ "version": "7.3.5",
4
4
  "description": "WhatsApp API Modification By Yudzxml",
5
5
  "keywords": [
6
6
  "whatsapp",