adb-record-screen

Screen recording function using Android Debug Bridge (adb).

Usage no npm install needed!

<script type="module">
  import adbRecordScreen from 'https://cdn.skypack.dev/adb-record-screen';
</script>

README

adb record screen

Screen recording function using Android Debug Bridge (adb).

Contents

Requirements

This is a thin wrapper around adb and has no other dependencies.

Installation

npm install adb-record-screen

Usage

const recordScreen = require('adb-record-screen')

const recording = recordScreen('/tmp/test.mp4', {
  bugreport: true
})

recording.promise
  .then(result => {
    // Screen recording is done
    process.stdout.write(result.stdout)
    process.stderr.write(result.stderr)
  })
  .catch(error => {
    // Screen recording has failed
    console.error(error)
  })

// As an example, stop the screen recording after 5 seconds:
setTimeout(() => recording.stop(), 5000)

Options

const defaultOptions = {
  serial: undefined, // Use device with given serial
  transportID: undefined, // Use device with given transport ID
  hostname: undefined, // Android device hostname
  port: 5555, // Android device port
  waitTimeout: 5000, // Device wait timeout (ms), set to 0 to disable wait
  bugreport: undefined, // Set to `true` to add additional info to the video
  size: undefined, // WIDTHxHEIGHT, defaults to native device resolution
  bitRate: 4000000, // Bits per second, default is 4Mbps
  timeLimit: 180, // Time limit (s), maximum is 180 (3 mins)
  pullDelay: 200 // Delay (ms) before pulling the video file
}

Testing

  1. Start Docker.
  2. Start Android Emulator.
  3. Install development dependencies:
    npm install
    
  4. Run the tests:
    npm test
    

License

Released under the MIT license.

Author

Sebastian Tschan