Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.

Почему ffmpeg всегда скидывает в лог параметры коммандной строки?

Какая то ужасно неуклюжая отладка ffmpeg в php через shell_exec.

Простой рабочий код копирования mp3

FFREPORT=file=ff%t.log:level=16 ffmpeg -y -i '/tmp/phpuloL1U'    -acodec copy '/home/test.mp3' &


Работает. Код дебага level=16 означает скидывать лог в случае ошибки. Можно сделать вообще level=0, но чтож такое то! Эта зараза в любом случае мне скидывает логи с параметрами командной строки:


Command line:
ffmpeg -y -i /tmp/phpuloL1U -acodec copy /home/test.mp3


Почему?как?зачем?

Если добавляю это >/dev/null 2>/dev/null чтобы stdout выключить, то в лог пишется тож самое да еще и почему то:
/tmp/phpuloL1U: No such file or directory

Что с этой ерундой то делать всей?
  • Вопрос задан
  • 713 просмотров
Решения вопроса 1
@monah_tuk
Только писать BugReport:
idx = locate_option(argc, argv, options, "report");
    if ((env = getenv("FFREPORT")) || idx) {
        init_report(env);
        // Код ниже сбрасывает параметры командной строки невзирая ни на что. Главное что бы файл смог открыться
        if (report_file) {
            int i;
            fprintf(report_file, "Command line:\n");
            for (i = 0; i < argc; i++) {
                dump_argument(argv[i]);
                fputc(i < argc - 1 ? ' ' : '\n', report_file);
            }
            fflush(report_file);
        }
    }


Исправление тоже достаточно простое:
if (report_file && report_file_level)

так что можете сами пересобрать.

С другой стороны, если вы не собираетесь логировать вообще, то зачем передавать файл для репорта?

Это ответ на вопросы: "почему?" и "как?"

Ответ на вопрос: "зачем?" - репорт изначально задумывался как фича, полезная в разруливании некоторых багов. Их просят прикладывать к отчётам, что бы при этом не засирался выхлоп на экран. Так что это фича была больше для разработчиков. То, что пользователи используют инструмент не так, как задумывалось... Ну за всех думу не передумаешь :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vilgeforce
Раздолбай и программист
Может у него в исходниках так прописано: всегда в лог параметры комстроки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы