Это происходит потому, что обычно процесс печати выполняется в два файла: файл «стандартный вывод» и файл «стандартная ошибка». Программист может вручную решить, какой файл выводить (доступ к ним осуществляется через std::cout
и std::cerr
). Основное правило - выводить на печать стандартный результат программы, а stderr - ошибки, диагностику и т. Д.
Я запускаю ffmpeg, и так получилось, что он ничего не печатает на стандартный вывод (возможно, зарезервировав его для специального режима, где там печатается закодированный файл), и все текстовые сообщения выводятся на стандартный вывод. Таким образом, вы должны использовать функцию setStandardErrorFile()
для захвата вывода.