You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
913 B

4 years ago
4 years ago
4 years ago
  1. const mumble = require('mumble'),
  2. fs = require('fs'),
  3. lame = require('lame'),
  4. options = {
  5. key: fs.readFileSync(__dirname + '/key.pem'),
  6. cert: fs.readFileSync(__dirname + '/cert.pem')
  7. }
  8. console.log('Connecting')
  9. mumble.connect(process.argv[2] || 'mastodon.madrid', options, (error, connection) => {
  10. if (error) { console.error(error) }
  11. console.log('Connected')
  12. connection.authenticate(process.argv[3] || 'record')
  13. connection.on('initialized', () => {
  14. chan = connection.channelByName(process.argv[4] || 'Root')
  15. chan.join()
  16. })
  17. const encoder = new lame.Encoder({
  18. channels: 1,
  19. sampleRate: 48000,
  20. bitDepth: 16,
  21. bitRate: 128,
  22. outSampleRate: 44100,
  23. mode: lame.STEREO
  24. })
  25. connection.outputStream().pipe(encoder).pipe(fs.createWriteStream(__dirname + '/records/mumble-' + Date.now() + '.mp3'))
  26. })