Загрузите видео файл и выберите отдельные кадры - PullRequest
1 голос
/ 08 октября 2010

Мы разрабатываем приложение для сбора видеофайлов различных форматов, простого редактирования файлов и вывода их в определенный формат.

Я могу обрабатывать все, кроме части редактирования, через FFMPEG, поскольку редактирование требует от пользователя указания определенных вещей. Мне нужно, чтобы пользователь определил любые диапазоны кадров, которые должны быть обрезаны (только с начала или конца, но не середины), начальные / конечные номера кадров для увеличения или уменьшения изображения и наложения текста.

Я видел как оболочки Splicer, так и оболочки Directshow.NET, но я не уверен, что стоит потратить время на внесение всего редактирования в наше приложение, а не просто использовать avisynth / ffmpeg / mencoder для выполнения реального редактирования. после того, как пользователь установит все вышеперечисленное.

Все, что мне действительно нужно, - это элемент управления или обертка, чтобы я мог создать элемент управления, который будет воспроизводить / приостанавливать видео, перемещаться между кадрами и позволять мне получать этот конкретный номер кадра видео. Я могу сгенерировать AVS файлы, чтобы сделать все остальное. Было бы хорошо, если бы он использовал DirectShow на каком-то уровне, чтобы любые кодеки, установленные на машине, были доступны, поскольку видео могут быть в формате WMV, FLV, Divx, MP4 и т. Д. Для начала, и нам нужно поддерживать все из них.

Будут рассмотрены любые идеи или предложения, но мы собираемся реализовать самую быструю (написание кода, а не выполнение).

1 Ответ

1 голос
/ 12 октября 2010

Что мы в итоге сделали:

Мы использовали элемент управления ActiveX проигрывателя Windows Media, чтобы позволить пользователю выбирать точки в видео для установки замирания и обрезки. Затем мы сгенерируем из этого скрипт Avisynth и запустим его через mencoder, чтобы получить окончательное видео.

Мы остановились на использовании свойства double из элемента управления WMP, которое задает currentPosition в воспроизводимом клипе. Это было достаточно точно для наших нужд, чтобы сгенерировать номер кадра из кадров клипа в секунду и currentPosition для использования в скрипте AviSynth.

...