Ticket #337 (closed defect: worksforme)
FFmpeg's isaTTY check makes programatically parsing stderr impossible
| Reported by: | tommedema | Owned by: | michael |
|---|---|---|---|
| Priority: | normal | Component: | FFmpeg |
| Version: | git-master | Keywords: | console tty loglevel programming interaction debug progress |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
What you were trying to accomplish (e.g., "I am trying to transcode from this format to that format...")
I am programatically spawning FFmpeg, trying to parse "progress" info from stderr using the following regular expression:
/size=[\b]*([0-9]+)kB/
An example entry:
52kB time=00:00:11.43 bitrate= 37.4kbits/s
These entries are displayed just fine when I run ffmpeg in the console (TTY).
The problem you encountered (e.g., "ffmpeg crashed" or "The output video was all green")
When I spawn a ffmpeg process programatically, ffmpeg refuces to listen to the -loglevel command because it performs a is-a-tty check and seems to not provide as much debug information when it is not a TTY (which is the case when spawning programatically and piping stderr data to certain streams).



Please provide enough information so this can be reproduced