Есть ли у кого-нибудь известный надежный способ создания видео из серии файлов изображений? Прежде чем вы меня передумаете для того, чтобы не искать ответ, прежде чем отправлять вопрос, и перед тем, как вы отпустите простое сообщение типа "использовать FFMPEG", прочитайте остальную часть этого сообщения.
Я пытаюсь создать видео, неважно, какой формат, если он широко поддерживается, из серии изображений (.jpg,.bmp и т.д.). Моя платформа - Windows Server 2008, 64-разрядная. Если я смогу сделать видео из моей программы на С#, это здорово, но я не прочь написать серию файлов изображений в каталог, а затем отключить внешнюю программу, чтобы сделать видео с этих изображений.
Единственными ограничениями являются: он должен работать на моей системе Windows Server 2008 и быть доступен для сценариев. То есть нет программ GUI, требующих вмешательства оператора.
Я нашел ряд подобных вопросов в StackOverflow и попробовал несколько решений, все с разной степенью разочарования и ни с чем не похожими на успех.
FFMPEG выглядит как отличная программа. Возможно, это так, на Linux. Две загруженные мной версии Windows сломаны. Учитывая эту командную строку:
ffmpeg -r 1 -f image2 -i jpeg\*.jpg video.avi
Один из сборок считывает изображения, а затем падает из-за предотвращения выполнения данных. Другой читает первый файл, а затем выплевывает сообщение об ошибке "Не может найти подходящий кодек для файла jpeg/image2.jpg". Полезно, что. В любом случае FFMPEG выглядит как не стартер под Windows.
Один ответ на предыдущую публикацию рекомендуется Splicer. Это выглядит неплохо. Я скомпилировал образцы и попытался выполнить, но получил некоторое загадочное сообщение об ошибке, когда файл не найден. Похоже, что класс COM не зарегистрирован. Полагаю, мне нужно что-то установить (DirectShow, может быть, хотя я думал, что это уже установлено?). В зависимости от того, что требуется, у меня может возникнуть трудное время, оправдывающее его установку на сервере. ( "Что? Зачем вам это нужно на сервере?" )
Другой ответ предложил библиотеку AviFile из проекта кода. Это выглядит достаточно просто: обертка вокруг подсистемы Windows AviFile. За исключением того, что файлы AVI, созданные в пакете, имеют все кадры, но только первый кадр показывает, когда я проигрываю AVI в проигрывателе Windows Media. Ну, и если вы попытаетесь создать сжатое видео, программа выдает исключение.
Итак, мне осталось интересно, есть ли хороший, надежный способ сделать то, что я хочу: в системе Windows, создать AVI или другой общий формат видеофайлов из серии изображений либо через .NET API или с помощью внешней программы. Любая помощь?