This is my question and apparently this is the answer. Turns out it was a buffer problem (solution in the accepted answer of my ffmpeg link) not stdin. I found you can stdout to null by writing > NUL in command prompt so i tried writing < NUL at the end of my argument. No luck.
How do i pass in null or do something with the IO locks like that perl code does so i can get my ffmpeg script not locking up after 15 or so seconds? NOTE: I must get std out and err to check for failures.
Update: The previous response was about how to close stdin on a process spawned from Perl, but the question is really about how to perform the task in .NET.
The idea is the same. You want to close the handle to the new process’s standard input stream. In .NET, that can be done with
immediately after the call to
app.Start().(I think you’ll also want to set
app.StartInfo.RedirectStandardInput = true, but I’m not much of a .NET programmer and I’m not sure about that).NULis a Windows convention, like Unix’s/dev/null. But on Unix> NULwill create a file called"NUL", and< NULwill cause your system call (i.e.system, backticks, etc.) to fail unless there is a file called"NUL".That said, there are portable ways in Perl to close the standard input to a spawned process. For example:
will launch
$commandand immediately close$command‘s standard input handle, as if you ran the command from the command line and immediately hit^D.