У меня есть то, что кажется, это должна быть действительно простая проблема, но это оказалось намного сложнее, чем я ожидал. Здесь проблема:
У меня довольно большая последовательность изображений, состоящая из нумерованных кадров (выход из Maya, для чего это стоит). Изображения в настоящее время находятся в формате Targa (.tga), но я мог бы преобразовать их в PNG или другой произвольный формат, если это имеет значение. Важно то, что у них есть альфа-канал.
Что я хочу сделать, это программно превратить их в видеоклип. Формат не имеет большого значения, но он должен быть без потерь и иметь альфа-канал. Несжатое видео в контейнере Quicktime, вероятно, будет идеальным.
Моя первоначальная мысль была ffmpeg, но, потратив большую часть дня на нее, кажется, что она не получила никакой поддержки для альфа-каналов. Либо мне что-то не хватает, либо базовый libavcodec просто этого не делает.
Итак, какой правильный путь здесь? Инструмент командной строки, такой как ffmpeg, был бы приятным, но любое решение, которое запускается в Windows и может быть вызвано из script, будет в порядке.
Примечание. Наличие альфа-канала в вашем видео на самом деле не так уж и необычно, и это действительно полезно, если вы хотите собрать его поверх другого видеоклипа или неподвижного изображения. Насколько я знаю несжатое видео, кодек Quicktime Animation и кодек Sorenson Video 3 поддерживают прозрачность, и я слышал, что H.264 также работает. Все, о чем мы говорим, это 32-битная глубина цвета, и это довольно широко поддерживается; как Quicktime.mov файлы, так и файлы Windows.avi могут справиться с этим, и, вероятно, намного больше.
Quicktime Pro более чем счастлив превратить последовательность изображений в 32-битный файл .mov. Нажмите "Экспорт", измените глубину цвета на "Миллионы цветов +", выберите "Анимационный кодек", проверьте качество до 100, и там вы - без потерь сжатое видео с альфа-каналом, и оно будет воспроизводиться почти где угодно с кодека является частью Quicktime с версии 1.0. Проблема в том, что Quicktime Pro не имеет никакого интерфейса командной строки (по крайней мере, в Windows). ffmpeg поддерживает кодирование с использованием кодека Quicktime Animation (который он вызывает qtrle), но он поддерживает только бит-глубину 24 бит.
Проблема заключается не в поиске формата видео, поддерживающего альфа-канал. Быстрая анимация была бы идеальной, но даже несжатое видео должно работать. Проблема заключается в поиске инструмента, который его поддерживает.