Смешивание видео на стороне сервера - PullRequest
1 голос
/ 25 декабря 2009

У меня есть серия видеофайлов, закодированных в 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, это тоже сработало бы. Но о окнах не может быть и речи.

Ответы [ 4 ]

2 голосов
/ 28 декабря 2009

Я наконец-то закончил писать свое решение с нуля, используя библиотеку ffmpeg. Это много кода котельной плиты, но в конце логика не сложна.

Я нашел MLT framework , который мне очень помог.

0 голосов
/ 17 марта 2014

Если ваши видео / изображения уже в сети, вы можете использовать API Stupeflix для создания финальных видео. Вы можете изменить саундтрек, добавить фильтры к видео и многое другое. Вот документация и онлайн демо: https://developer.stupeflix.com/documentation/.

0 голосов
/ 29 декабря 2009

Что ж, если вы предпочитаете Java, я написал несколько похожих программ, используя Xuggler API.

0 голосов
/ 25 декабря 2009

Вот два связанных вопроса:

Инструменты редактирования видео командной строки

https://superuser.com/questions/74028/linux-command-line-tool-for-video-editing

Avisynth звучит так, как будто он может делать то, что вы хотите, но только для Windows.

Вы вполне можете написать свое собственное приложение, используя библиотеку FFmpeg. Вы правы, документация может быть лучше ... но учебник Стивена Дрангера - хорошее место для начала (если вы еще этого не знаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...