2011-08-22 21:59:57 +0000 2011-08-22 21:59:57 +0000
132
132

Как сделать ffmpeg более тихим/бессловесным?

По умолчанию ffmpeg посылает множество сообщений в stderr: когда он был собран, как он был собран, кодеки и т.д. и т.п. и т.п.

Как я могу сделать это тише?

Я пробовал -v 0-v 10 с тех пор, как в документации просто кокетливо сказано Set the logging verbosity level. без указания диапазона входных данных) - все равно не тихо.

я пробовал -loglevel quiet – все еще не тихо.

Я должен упомянуть, что я ищу “тише”, а не “никогда не выходит”. Если есть ошибка, я хочу ее увидеть, но мне не нужно каждый раз слышать о конфигурации ffmpeg.

Ответы (9)

122
122
122
2012-01-12 00:59:37 +0000

Я не тестировал его, но вижу в man-странице опцию:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Должен сделать так, чтобы в журнал заносились только серьезные ошибки, теоретически.

92
92
92
2016-02-24 19:37:56 +0000

ffmpeg -hide_banner -loglevel panic

Это упоминается в комментарии под текущим ответом.

Вариант -hide_banner был введен в конце 2013 г. – https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html ).

58
58
58
2012-06-18 11:54:37 +0000

Здесь представлены лог-уровни из исходного кода (FFmpeg версия 0.10.2.git)

const struct { const char *name; int level; } log_levels[] = {
        { "quiet" , AV_LOG_QUIET },
        { "panic" , AV_LOG_PANIC },
        { "fatal" , AV_LOG_FATAL },
        { "error" , AV_LOG_ERROR },
        { "warning", AV_LOG_WARNING },
        { "info" , AV_LOG_INFO },
        { "verbose", AV_LOG_VERBOSE },
        { "debug" , AV_LOG_DEBUG },
    };
21
21
21
2015-08-12 06:41:29 +0000

Я успешно использовал следующую (на момент написания статьи - новейшая версия FFMPEG):

-nostats -loglevel 0

Тогда в моем сценарии использования он абсолютно бесшумен.

18
18
18
2016-07-09 17:25:13 +0000
ffmpeg -loglevel error [other commands]

Это скрывает баннер и отображает только ошибки. Используйте -loglevel warning, если хотите видеть предупреждения.

Протестировано в Ffmpeg 3.0.2.

Из документации :

-лог-уровень [повторить+]лог-уровень | -v [повторить+]лог-уровень

Установите уровень лог-файлов, используемый библиотекой. Добавление “repeat+” означает, что повторный вывод журнала не должен быть сжат до первой строки, а строка “Last message repeated n times” будет опущена. “Повтор” также может использоваться отдельно. Если “повторить” используется отдельно и не установлен предыдущий лог-уровень, то будет использован лог-уровень по умолчанию. Если задано несколько лог-параметров, то при использовании “повтора” лог-уровень не изменяется. лог-уровень - это строка или число, содержащее одно из следующих значений:

‘quiet, -8’

Show nothing at all; be silent.

‘паника, 0’

показывать только фатальные ошибки, которые могут привести к аварийному завершению процесса, например, и утверждать о сбое. В настоящее время это ни для чего не используется.

‘fatal, 8’

Показывать только фатальные ошибки. Это ошибки, после которых процесс абсолютно не может продолжаться.

‘ошибка, 16’

Показать все ошибки, включая те, из которых можно восстановить.

‘warning, 24’

Показать все предупреждения и ошибки. Будет показано любое сообщение, связанное с возможно некорректными или неожиданными событиями.

‘info, 32’

Показать информационные сообщения во время обработки. Это в дополнение к предупреждениям и ошибкам. Это значение по умолчанию.

‘verbose, 40’

То же самое, что и info, за исключением более многословных.

‘отладка, 48’

Показать все, включая отладочную информацию.

‘tra trace, 56’

По умолчанию программа ведет лог в stderr, если раскраска поддерживается терминалом, цвета используются для разметки ошибок и предупреждений. Раскрашивание логов можно отключить, установив переменную окружения AV_LOG_FORCE_NOCOLOR или NO_COLOR, или принудительно установив переменную окружения AV_LOG_FORCE_COLOR. Использование переменной окружения NO_COLOR является устаревшим и будет сброшено в следующей версии FFmpeg.

5
5
5
2018-10-04 16:04:12 +0000

Для меня в MacOS работало следующее:

ffmpeg -v quiet

или только для того, чтобы увидеть прогресс:

ffmpeg -v quiet -stats
3
3
3
2013-04-17 14:00:47 +0000

Вы можете пропускать стдерр через смазку. Например, если вы хотите удалить информацию о конфигурации, вы можете сделать это вот так:

% ffmpeg -i infile.avi -s 640x480 outfile.avi >/dev/null 2>&1 | grep -v configuration:
0
0
0
2019-05-30 01:41:51 +0000

ffmpeg -loglevel error -hide_banner -nostats

Только ошибки, больше ничего.

Лично мне это больше всего нравится;

ffmpeg -loglevel warning -hide_banner -stats

Она выдает только предупреждения и ошибки, но и показывает ход работы.

0
0
0
2011-08-23 05:08:56 +0000

Это немного дешево, но добавление >/dev/null 2>&1 - это верный способ сохранить молчание ffmpeg в оболочке.

Экзамен

ffmpeg -f x11grab -y -r 24 -s 800x600 -i :0.0+1366,100 -f oss -i /dev/dsp3 -sameq ./out.avi >/dev/null 2>&1

Дополнительная информация о баш-выходе