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