У меня есть серия видеофайлов, закодированных в mpeg2 (я могу изменить эту кодировку), и мне нужно создать фильм на flash flv (это требование, я не могу изменить эту кодировку).
Один целевой фильм - это подборка разных исходных видеофайлов.
У меня есть плейлист, определяющий целевой фильм. Например:
Video file Position Offset Length
little_gnomes 0 0 8.5
fairies 5.23 0.12 12.234
pixies 14 0 9.2
Видеофайл - это имя файла, позиция - когда файл должен быть запущен (на основной временной шкале), смещение - это смещение в видеофайле, а длина - длина воспроизводимого видео. Числа являются секундами (в двойном).
Это приведет к чему-то вроде этого (окончательная шкала времени фильма):
0--5.23|--8.5|--14|--17.464|--23.2|
little_nomes **************
fairies *********************
pixies *****************
Если видео перекрывается, последнее добавляемое видео переопределяет последнее, звук следует микшировать.
Результирующий видео трек будет:
0--5.23|--8.5|--14|--17.464|--23.2|
little_nomes *******
fairies ***********
pixies *****************
В то время как полученное аудио будет:
0--5.23|--8.5|--14|--17.464|--23.2|
little_nomes 11111112222222
fairies 222222211112222222222
pixies 22222222221111111
Где 1 или 2 - количество смешанных звуковых дорожек.
Может быть максимум 3 звуковых дорожки.
Мне нужно написать программу, которая принимает список воспроизведения в качестве входных данных и создает файл flv. Я открыт для любого решения (должно быть бесплатно / с открытым исходным кодом).
Существующий инструмент, который может это сделать, был бы самым простым, но я не нашел ни одного. Что касается собственного решения, я нашел только ffmpeg, с ним я мог что-то делать, но документации ужасно не хватает.
Это может быть любой язык, он не должен быть очень быстрым (если для создания 1-го фильма требуется 30 минут, это нормально).
Решение будет работать на серверах x64 на основе opensolaris. Если бы мне пришлось использовать Linux, это тоже сработало бы. Но о окнах не может быть и речи.