Question: The problem is simple:

---

When I run for example:

```dart
print(Process.runSync('ipconfig', []).stdout)

```

I get the expected output:

```

Windows IP Configuration

Unknown adapter Helyi kapcsolat:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
......

```

---

But when I try to run `ffmpeg`, I get no output:

```dart
print(Process.runSync('ffmpeg', []).stdout)

```

What I'd expect in this case is to get the help output from ffmpeg.

My guess is, ffmpeg has some kind of "different" way of interacting with stdout than most executables. What could be the problem? I'm totally lost here.

I need to read the stdout eventually to get the output of `ffmpeg -list_devices true -f dshow -i dummy`, which would list the available DirectShow devices.

Answer: 
FFmpeg outputs useful data to stderr, including the help output and the device list of my original command, `ffmpeg -list_devices true -f dshow -i dummy`.

Simply use `stderr` (as well as `stdout`) to get the output:

```dart
print(Process.runSync('ffmpeg', []).stderr)

```
Tested in python 3.7 <=

```
import subprocess
s_out = subprocess.run(['ffmpeg', 'command_here'], check=True, capture_output=True).stderr
print(s_out)

```

*"subprocess.CalledProcessError"* must be returned if command is invalid.