Measure application resource and power usage on Windows on Arm with FFmpeg and PowerShell
Introduction
Set up FFmpeg and encode a test video
Track system resource usage on Windows on Arm with PowerShell
Measure power usage on Windows on Arm with PowerShell
Next Steps
Measure application resource and power usage on Windows on Arm with FFmpeg and PowerShell
Who is this for?
This is an introductory topic for developers who want to measure resource usage of applications on Windows on Arm devices using FFmpeg.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Measure application resource usage using FFmpeg and PowerShell
- Benchmark a video encoding task
- Monitor CPU, memory, and power consumption during a video decode task
Prerequisites
Before starting, you will need the following:
- A Windows on Arm computer such as the Lenovo Thinkpad X13s running Windows 11
- A code editor such as Visual Studio Code for Windows on Arm
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll use FFmpeg and PowerShell on Windows on Arm to compare native Arm64 and emulated x86_64 video workloads. First, you’ll encode a test video, then run scripts that sample CPU, memory, and battery data during decoding. You’ll save the measurements to CSV files and repeat the runs with each FFmpeg build to make side-by-side comparisons.
Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Set the
exePath parameter to the specific FFmpeg or FFplay binary that you want to run. Use the Arm64-native build for Arm execution, or point to an x86_64 build to run under Windows instruction emulation.While the decode task runs, the script writes samples to a CSV file. Check that the CSV file appears and grows over time, and that it contains headers and rows with CPU and memory values.
Verify the input and output file paths and confirm the arguments match the media you’re using. Ensure
exePath points to a valid FFmpeg or FFplay binary and review the console output for specific errors.The output file name and path are defined in each script. Open the script to confirm or change the location. Expect timestamped rows with the recorded metrics, such as CPU and memory for resource sampling, or battery-related fields for power sampling.
Use the same media file, the same command arguments, and the same sampling settings for both runs. Point
exePath to each build in turn and compare the resulting CSV files.