[FFmpeg-user] Review, for FAQs on running ffmpeg in the background
Jim DeLaHunt
from.ffmpeg-user at jdlh.com
Sun Nov 5 07:58:06 EET 2017
Hello, ffmpeg users:
Many thanks to everyone who has helped make this excellent tool, on
which I now rely. I appreciate your efforts.
I recently joined the trickle of ffmpeg users who had problems running
ffmpeg in the background, because it would get suspended. I too
eventually found out about ffmpeg's use of stdin interaction, about the
-nostdin option to disable that, or the alternative of redirecting stdin
to /dev/null.
I don't see any clear documentation about this issue in the ffmpeg docs.
Specifically, it seems like it ought to be an FAQ
<http://ffmpeg.org/faq.html>, and I don't see it there.
Here is a proposed pair of FAQs. They might end up as 3.19 and 3.20. I
would appreciate your review. Any suggestions about how to improve it?
I've written this as two questions, should it be one? (Don't worry about
the formatting, I can add that when I make the patch.)
=====
[Q: 3.19~] How do I run ffmpeg as a background task?
`ffmpeg` normally checks the console input for entries like "q" to stop,
"?" to give help, while performing operations. It does not have a way of
detecting when it is running as a background task. When it checks the
console input, that can cause the process running ffmpeg in the
background to suspend.
To run ffmpeg as a background task, and prevent those input checks, use
the `-nostdin` option, as described in [Main
Options](http://ffmpeg.org/ffmpeg.html#Main-options), in the `ffmpeg`
invocation. As an alternative, you can redirect standard input to
`/dev/null` (on Linux and Mac OS) or `NUL` (on Windows), either on the
`ffmeg` invocation, or from a shell script which calls `ffmpeg`.
For example:
ffmpeg -nostdin -i INPUT OUTPUT
or (on Linus and Mac OS):
ffmpeg -i INPUT OUTPUT </dev/null
or (on Windows):
ffmpeg -i INPUT OUTPUT <NUL
[Q: 3.20~] ffmpeg suspends with a message like `suspended (tty output)`
when I run it in the background. How do I prevent ffmpeg from being
suspended?
If you run `ffmpeg` in the background, you may find that its process
suspends. For example:
% ffmpeg -i INPUT OUTPUT &> ~/tmp/log.txt &
[1] 93352
%
[1] + suspended (tty output) ffmpeg -i INPUT OUTPUT &>
The message "tty output" notwithstanding, the problem here is that
`ffmpeg` normally checks the console /input/ when it runs. The operating
system detects this, and suspends the process until you can bring it to
the foreground and attend to it.
The solution is to use the right techniques to tell `ffmpeg` not to
consult console input. You can use the `-nostdin` option, or redirect
standard input with `< /dev/null`. See FAQ {3.19} for details.
=====
Comments?
Why two questions? One to explain the issue straightforwardly, and one
to present the kind of messages and keywords for which a user might
search when they experience the problem and don't understand it.
FYI, I've also written a StackExchange question about this: /When I run
`ffmpeg` in the background, how do I prevent `suspended (tty output)`?
<https://stackoverflow.com/questions/47115191/when-i-run-ffmpeg-in-the-background-how-do-i-prevent-suspended-tty-output/47115192#47115192>
/Feel free to answer there if you want. I also wrote a blog post with
essentially the same content: //When I run “ffmpeg” in the background,
how do I prevent “suspended (tty output)”?/
<http://blog.jdlh.com/en/2017/11/04/ffmpeg-suspended-tty-output/>/ That
should also help get the word out to ffmpeg users searching the web at
large.
--
--Jim DeLaHunt, jdlh at jdlh.com http://blog.jdlh.com/ (http://jdlh.com/)
multilingual websites consultant
355-1027 Davie St, Vancouver BC V6E 4L2, Canada
Canada mobile +1-604-376-8953
More information about the ffmpeg-user
mailing list