Record Android Screen with Internal Audio Using ADB and FFmpeg (No Root)

9 min read Step‑by‑step guide to capture high‑quality Android screen recordings with internal audio using ADB and FFmpeg, without rooting your device. October 13, 2026 02:00 How to Record Android Screen with Internal Audio Using ADB and FFmpeg (No Root)

Before you start

Capturing a clean, high‑resolution screen video that includes the device’s own audio (music, game sound, video playback, etc.) normally requires a rooted phone or a third‑party recorder that may add watermarks. Using the built‑in screenrecord command together with ADB gives you a pure, lossless file, and FFmpeg lets you re‑encode or trim it without leaving the computer. The workflow works on any Android 10 (API 29) or newer device that supports the --audio flag – a feature Google added to the system recorder in 2020.

What you’ll need:

  • A Windows, macOS, or Linux PC with adb installed and added to the system PATH.
  • FFmpeg (any recent 4.x or 5.x build) installed on the same PC.
  • A USB‑C or micro‑USB cable capable of data transfer (charging‑only cables will not work).
  • At least 500 MB of free storage on the phone for a short test clip – longer recordings will need more space.
  • Android 10 or later; the --audio option is ignored on older releases.
If you already have the Android SDK installed, you already have ADB. Otherwise, download the platform‑tools package from the official Android developer site.

Step 1 – Install and verify ADB

  1. Download the platform‑tools zip for your OS.
  2. Extract it to a convenient folder (e.g., C:\adb on Windows or ~/adb on macOS/Linux).
  3. Add the folder to your PATH so you can run adb from any terminal.
    # Windows (PowerShell)
    $env:Path += ";C:\adb"
    # macOS/Linux (bash)
    export PATH="$PATH:$HOME/adb"
    
  4. Open a terminal and type adb version. You should see something like Android Debug Bridge version 1.0.41.

Step 2 – Enable USB debugging on the phone

  1. Open Settings → About phone → tap Build number seven times until you see “You are now a developer!”.
  2. Go back to the main Settings screen, open System → Developer options.
  3. Toggle USB debugging on. Confirm any pop‑up that asks for permission.
  4. Connect the phone to the PC with the data cable. In the terminal run adb devices. The device should appear as device (not unauthorized). If a dialog pops up on the phone, tap **Allow**.

Step 3 – Grant the system recorder permission to capture internal audio

Starting with Android 10, the system recorder needs an explicit permission to capture the device’s own audio stream. Some OEM skins hide this toggle, but the generic path works on stock Android and most recent manufacturer skins.

  1. Open Settings → Apps & notifications → Special app access.
  2. Tap Screen recording (or Audio capture on some devices).
  3. Enable the switch for Allow screen recorder to capture internal audio. If you don’t see the entry, you can grant it via ADB:
    adb shell appops set com.android.systemui PROJECT_MEDIA_RECORD_AUDIO allow

Step 4 – Start a screen recording with internal audio via ADB

The screenrecord command lives on the device itself. By invoking it through ADB you keep the phone’s UI free for the content you want to capture.

  1. Decide on the resolution and bitrate. The default is the device’s native size and 4 Mbps, which is fine for most cases. If you need a lower‑resolution file (e.g., for faster upload), add --size WIDTHxHEIGHT and --bit-rate BITRATE.
    # Example: 1080x1920 at 8 Mbps
    adb shell screenrecord --size 1080x1920 --bit-rate 8000000 --output-format=mpeg4 --audio /sdcard/rec.mp4
  2. Run the command. The terminal will stay blocked while recording. You’ll see a small red dot on the phone’s status bar.
  3. When you’re ready to stop, press Ctrl + C** in the terminal. The recorder finalises the file and returns control.

What you should see: a file /sdcard/rec.mp4 on the device, roughly the length you recorded. The video includes everything displayed on the screen **and** the internal audio stream (music, game sounds, etc.).

Step 5 – Pull the recording to your computer

  1. In the same terminal, run:
    adb pull /sdcard/rec.mp4 ./rec.mp4
  2. The file will be copied to the current folder. Verify it exists:
    ls -lh rec.mp4

Step 6 – (Optional) Trim or re‑encode with FFmpeg

FFmpeg lets you cut out unwanted sections, change the container, or compress the video without losing the original quality.

  • Trim the first 5 seconds:
    ffmpeg -i rec.mp4 -ss 00:00:05 -c copy trimmed.mp4
  • Convert to H.264 + AAC in an MP4 container with a lower bitrate (useful for uploading to YouTube):
    ffmpeg -i rec.mp4 -c:v libx264 -b:v 4M -c:a aac -b:a 128k final.mp4
FFmpeg’s -c copy mode copies streams without re‑encoding, preserving the original quality and making the operation almost instant.

Step 7 – Verify the result

Open the file with your favourite media player (VLC, MPV, Windows Media Player, etc.). You should hear the exact audio that was playing on the phone during the capture – no microphone hiss, no missing sound.

Alternative approaches when --audio is unavailable

Some OEMs disable the internal‑audio flag even on Android 10+. If the command returns error: device does not support audio capture, try one of these work‑arounds:

  1. Use the microphone: omit --audio and instead place the phone near a speaker. Not ideal, but works for short demos.
  2. Third‑party screen recorders with internal audio: apps like AZ Screen Recorder or Mobizen can capture internal sound on many devices, but they often add watermarks or require a paid upgrade.
  3. Rooted method: if you are comfortable rooting, you can replace the system screenrecord binary with a version that forces audio capture. This guide does not cover rooting.

Troubleshooting common issues

ProblemPossible causeFix
ADB reports “device unauthorized”USB debugging not approvedReconnect cable, accept the RSA key dialog on the phone.
Screenrecord fails with “error: device does not support audio capture”Device runs Android 9 or OEM disabled the flagCheck Android version, try a different device, or use the microphone workaround.
File size grows rapidly, storage runs outBitrate too high or recording too longReduce --bit-rate (e.g., 2 Mbps) or record in shorter segments.
Audio is silent after pulling the filePermission not granted in Step 3Re‑grant the screen‑recording audio permission and retry.

Safety and performance notes

  • Battery impact: screenrecord keeps the GPU and encoder active, so the battery can drain quickly. Keep the phone plugged in for long sessions.
  • Storage management: a 5‑minute 1080p video at 8 Mbps occupies ~300 MB. Delete or off‑load recordings you no longer need.
  • Privacy: the file contains everything displayed on screen, including notifications. Review the video before sharing.

With these steps you now have a reliable, root‑free way to capture exactly what you see on your Android device, complete with the original system audio. Whether you’re making a tutorial, preserving a game highlight, or documenting a bug, the ADB + FFmpeg workflow gives you full control over quality and file size.

User Comments (0)

Add Comment
We'll never share your email with anyone else.