index.js 988 B

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. const spawn = require('child_process').spawn;
  3. /**
  4. * playArbitraryFFmpeg
  5. *
  6. * Will spawn a child process ffmpeg with specified parameters.
  7. * It will also concatenate some standard params that is needed
  8. * to output sound back into a VoiceConnection
  9. *
  10. * @param {VoiceConnection} objVoiceConnection A VoiceConnection instance from Discord.js
  11. * @param {array} arrFFmpegParams Your custom parameters to FFmpeg
  12. * @param {object} objOptions Optional stream options
  13. * @return {StreamDispatcher} Regular StreamDispatcher
  14. */
  15. const playArbitraryFFmpeg = function(objVoiceConnection, arrFFmpegParams, objOptions) {
  16. objOptions = objOptions || {};
  17. const arrStandardParams = [
  18. '-f', 'mp3',
  19. 'pipe:1'
  20. ];
  21. const arrFinalParams = arrFFmpegParams.concat(arrStandardParams);
  22. let ffmpeg = spawn('ffmpeg', arrFinalParams);
  23. return objVoiceConnection.playStream(ffmpeg.stdout, objOptions)
  24. };
  25. module.exports = playArbitraryFFmpeg;