2010-10-08 1 views
1

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

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

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

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

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

ответ

1

То, что мы в конечном итоге делает:

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

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

+0

Ну, как выясняется, что-то не так точно, как должно быть. Я предполагаю, что свойство currentPosition элемента управления WMP не является полностью точным, чем дальше в файл, тем больше число кадров становится от фактического, как сообщает AviSynth. – Matt

 Смежные вопросы

  • Нет связанных вопросов^_^