Добавление текста в видео и сохранение вывода - PullRequest
4 голосов
/ 17 июня 2009

То, что я пытаюсь сделать, это взять «входной» видеофайл (я могу сделать его любым типом файла, который сделает это проще всего), а затем, с помощью моего кода, добавить текст в видеофайл.

Так, например, потребуется Sample1.mpg и вывести Sample2.mpg. не показывало бы видео (я нашел несколько учебных пособий, в которых говорится о наложении текста во время воспроизведения видео, но на самом деле это не изменение видеофайла.

По сути, я хотел бы иметь возможность сказать: «От секунд до 200 нарисуйте« Привет, мама »с позицией 0,0 с этим шрифтом» и сохраните это в отобранном видео. Всякий раз, когда вы запускаете выводимое видео на любом плеере, вы в конечном итоге видите текст; потому что это будет частью видеофайла.

Я слышал заявления типа 'DirectShow!' но я бы действительно приветствовал что-то более конкретное.

Ответы [ 3 ]

2 голосов
/ 18 июня 2009

Вы можете использовать чрезвычайно мощный язык сценариев, называемый avisynth

ссылка: http://avisynth.org/

Работает с ЛЮБЫМ файлом, который вы можете воспроизводить, использует директ-шоу.

Просто установите его, это в основном установка кодека VFW, но очень просто. Откройте блокнот и введите

DirectShowSource("C:\dir\filename.extension")
Subtitle("Put Your text here")

Сохраните его как "любое имя. avs "

И ЭТО ЭТО . Теперь откройте его с помощью любого приложения с поддержкой avi (вы даже можете назвать его avi, если хотите!) И перекодировать видео или выполнить обработку. очень просто и автоматически. это работает и для фотографий.

Полный список возможностей Subtitle () можно найти здесь: http://avisynth.org/mediawiki/Subtitle

Конечно, Avisynth может творить чудеса, если вы справитесь с этим, например, печать системной даты на каждом кадре записи (полезно для защитных камер) или даже сложная обработка, такая как подавление шума в линии, повышение резкости и многие, многие другие задачи , через внешних мопсов.

Внешняя ссылка на Pugin: http://avisynth.org/mediawiki/External_plugins

Легко загружаемые плагины: http://avisynth.org/warpenterprises/

Это так просто, как только может. 2 строки кода, и у вас есть открываемый, доступный для обработки, конвертируемый, полностью совместимый и менее 1 КБ AVI (субтитры добавляются на лету, когда вы открываете AVS в своем приложении)

2 голосов
/ 20 июня 2009

Я бы посоветовал прочитать больше об этом:

Параметры предсказуемого захвата кадров в приложении .NET

А затем с помощью

Graphics g = Graphics.FromImage(bitmap);

Чтобы вставить фрейм в .NET, а затем посмотреть на это:

GraphicsPath path = new GraphicsPath();
path.AddString("Yadda", font.FontFamily, (int)font.Style, font.Size, rect, format);

Тогда используйте

g.FillPath(..path..)

чтобы добавить рисунок в рамку.

Как засунуть его обратно в MPG ??? Полагаю, вы вернулись к использованию кода / проекта, указанного в ссылке вверху.

Мне кажется, что это случай извлечения кадра BMP, используйте рисование .NET, чтобы добавить к нему материал, а затем снова вставьте. Глядя на то, как сделаны капчи в .NET, вероятно, полезно.

Удачи !!

1 голос
/ 17 июня 2009

Ознакомьтесь с Adobe Premier API . Я не уверен, есть ли библиотеки .NET или вам нужно взаимодействовать.

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