start-process to run mplayer and when playing videos I get a ton of output to stderr from "vdp_...". On the command line I usually just 2>/dev/null but
start-process runs it directly without a shell. (I tried
start-process-shell-command but it simply does not work at all).
call-process lets you provide a list for separate stdout and stderr but it seems
start-process does not. I don't see an option to mplayer to inhibit the output. If only there were a way to do with
start-process what you can do with
call-process. Is there some way I'm not seeing to do this?
Emacs 25 introduced the function
make-process for creating asynchronous processes, which is lower-level than
start-process. In particular, you can separate
stdout by passing a buffer or pipe as the function's
:stderr keyword argument. For example:
(make-process :name "mplayer" :buffer (generate-new-buffer "*mplayer out*") :command '("mplayer" "/path/to/video") :connection-type 'pipe :stderr (generate-new-buffer "*mplayer err*"))
The standard output and error streams of
mplayer will now appear in buffers with names like
*mplayer out* and
*mplayer err*, respectively.
(info "(elisp) Asynchronous Processes") for more information.