Создание видео с помощью FFmpeg из последовательности снимков PNG приводит к черному видео.

Вопрос или проблема

Когда я создаю видео из последовательности снимков PNG, выходное видео черное.

Вот минимальный рабочий пример: я создаю видео из этих двух кадров с помощью следующей команды на Ubuntu 16.04.4 LTS, и в итоге получается черный файл видео MP4.

ffmpeg -r 1 -i frame%d.png -pix_fmt yuv420p video.mp4

Знаете ли вы какой-либо способ избежать этого?

Я знаю, что похожий вопрос уже задавали, например, здесь, но предложенное решение не решает проблему в моем случае.

Некоторые плееры не любят видео с низкой частотой кадров. Обходное решение — установить высокую частоту кадров на выходе.

ffmpeg -framerate 1 -i frame%d.png -r 5 -pix_fmt yuv420p video.mp4

5 должно быть достаточно, но попробуйте 10, если нет.

Ответ или решение

Создание видео из последовательности PNG изображений с использованием FFmpeg иногда может привести к неожиданным результатам, например, к получению черного видеофайла. Чтобы устранить эту проблему, необходимо рассмотреть несколько возможных причин и решений.

Анализ проблемы

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

ffmpeg -r 1 -i frame%d.png -pix_fmt yuv420p video.mp4

приводит к созданию черного видео. Это может быть связано с несколькими факторами:

  1. Неверная синхронизация частоты кадров: Указанная частота кадров (-r 1) может быть слишком низкой для корректного воспроизведения в некоторых медиаплеерах. Это приводит к проблемам с отображением, так как такие плееры просто не могут правильно обработать такие видеокадры.

  2. Некорректный путь к файлам: Если файлы изображений не лежат в указанной директории или названы не в порядке, ожидаемом командой, то FFmpeg может не обработать изображения должным образом.

  3. Формат изображения: Хотя PNG обычно не вызывает проблем, но если исходные изображения содержат альфа-канал или необычные цветовые профили, это также может быть причиной.

Решение

Вот подробная инструкция, чтобы справиться с данной проблемой:

  1. Увеличьте частоту кадров на выходе: Одной из возможных причин черного экрана может быть очень низкая частота кадров. Попробуйте команду:

    ffmpeg -framerate 1 -i frame%d.png -r 5 -pix_fmt yuv420p video.mp4

    Это повысит частоту кадров, при которой FFmpeg создает видео, что может сделать его более совместимым с видео плеерами.

  2. Проверьте порядок и наличие файлов: Убедитесь, что файлы действительно находятся в той же директории, что и ваш текущий рабочий каталог, и что их имена совпадают с ожидаемым паттерном (.png).

  3. Преобразуйте изображения: Если проблема исходит из самих изображений, попробуйте предварительно их обработать. Используйте любую графическую утилиту для сохранения изображений в PNG без альфа-канала или тестовой конверсии в другой формат.

  4. Проверка с единственным изображением: Попробуйте создать видео только из одного кадра, чтобы увидеть, остаётся ли оно чёрным или нет. Это поможет диагностировать, в одном ли изображении проблема или в процессе их соединения.

Заключение

Если вышеуказанные шаги не решают проблему, стоит рассмотреть возможность обновления вашей версии FFmpeg, так как старые версии могут содержать баги или несовместимость с современными плеерами и кодеками. Также проверка в разных медиаплеерах может помочь определить, не связана ли проблема именно с используемым плеером.

Оцените материал
Добавить комментарий

Капча загружается...