Handle process errors

This change enables handling child process creation errors and pushes them
back to the user callback.  Such errors can happen for example when ffprobe
is not present, when the user does not have execution rights on it, etc.