Воскресенье, 22.10.2017, 05:32
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Delphi » DirectShow и Delphi. » Можно-ли записать видео с наложенным текстом в файл? (как записать захваченное с камеры видео+звук налож. текст)
Можно-ли записать видео с наложенным текстом в файл?
urry_buhДата: Четверг, 29.08.2013, 13:43 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
Принимайте в ряды ещё одного новичка.
Вообще-то вопросов масса, начиная от подмены имени файла вывода "на ходу" без перестроения графа .
Задача- максимум: написать нечто, захватывающее изображение+ звук с камеры, с возможностью сохранения отд. кадров, упаковывающее  результат в файл, и при этом обеспечивающее предварительный просмотр/прослушивание. Вроде-бы работает, но без упаковки и наложения картинок.
С примерами разобрался, осталось разобраться с Рендерами- что-то не хотят они у меня вязаться по моему желанию:rolleyes: .
 
xaramamburuДата: Четверг, 29.08.2013, 21:30 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
urry_buh,

Цитата
Задача- максимум: написать нечто, захватывающее изображение+ звук с камеры, с возможностью сохранения отд. кадров, упаковывающее  результат в файл, и при этом обеспечивающее предварительный просмотр/прослушивание. Вроде-бы работает, но без упаковки и наложения картинок.

Вот пример, где можно выбирать фильтры для сжатия видео и звука, вроде был рабочий, хотя  возможно есть какие то косяки, я сейчас уже не помню - давно это было.)))
http://basicsprog.ucoz.ru/uroki_delphi/multimedia/urok3_1/kamera000.zip


Цитата
Вроде-бы работает, но без  наложения картинок

У меня была такая же мысль про наложение картинок и сохранение их в файл, но пока реализовать это не удалось.  Само по себе наложение картинки на видео  процесс не сложный, это умеет  делать фильтр WMR-9 (видеорендер), но к сожалению он не умеет это записывать, а только показывает.(((


Цитата
Вообще-то вопросов масса, начиная от подмены имени файла вывода "на ходу" без перестроения графа .

Про это тоже сказать особо ничего не могу, не пробовал, но вот ссылка на документацию по DirectShow [url=http://msdn.microsoft.com/en-us/library/dd318624(v=vs.85).aspx]http://msdn.microsoft.com/en-us/library/dd318624(v=vs.85).aspx[/url] как раз по этому вопросу.)))
Вообще в интернете в основном ходит такая мысль: ставим в граф SamleGrabber, получаем кадры, одновременно создаем поток типа AVIStream и пишем все это в файл. Но как это будет работать  и с какой скорость, можно ли при этом успеть обработать кадр я не знаю, это  нужно пробовать.)))
 
urry_buhДата: Суббота, 31.08.2013, 12:24 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
Практически сделал половину из того, что хотел. :-)
Есть проблема со SmartTee: если делать параллельный вывод звука на  Default DirectShow Audio device и в AviMux, то в файл пишется секунд 5-6 видео без звука и видеоцепочка встаёт. При этом микрофон работает, ошибок нет. Пытался указать синхронизацию от аудио-не помогает.
Картинки накладываются просто: БМП на БМП построчно or, xor, not- как угодно :-)

Добавлено (31.08.2013, 12:24)
---------------------------------------------
Как иногда полезно читать документацию не поиском, а по темам!
Надо просто для звука использовать Infinite pin tee!
И делить его хоть на все устройства сразу!

 
xaramamburuДата: Суббота, 31.08.2013, 20:12 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
urry_buh

Цитата
Картинки накладываются просто: БМП на БМП построчно or, xor, not- как угодно :-)

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


Цитата
Как иногда полезно читать документацию не поиском, а по темам! 

Вы пишите загадками. О какой документации идет речь?)))
 
urry_buhДата: Суббота, 31.08.2013, 20:29 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
2. http://msdn.microsoft.com/en-us/library/dd375006%28v=vs.85%29.aspx
1.
 Модификация "ограбленной" картинки . Наверное мы друг-друга недопоняли.
.....
      s := '[' + formatdatetime('hh:nn:ss.zzz', time) + ']';
      _tmpbmp := Tbitmap.Create();
      _tmpbmp.PixelFormat := pf24bit;
      _tmpbmp.Canvas.Brush.Color := CLWHITE;
      _tmpbmp.Canvas.Font.Color := CLRED;
      _tmpbmp.Canvas.Font.Size := 15;
      _tmpbmp.Canvas.Font.Style := [fsBold, fsItalic];
      _tmpbmp.Width := _tmpbmp.Canvas.TextWidth(s);
      _tmpbmp.Height := _tmpbmp.Canvas.TextHeight('2');
      _tmpbmp.Canvas.Rectangle(0, 0, _tmpbmp.Width, _tmpbmp.Height);
      _tmpbmp.Canvas.TextOut(0, 0, s);
      Bitmap.PixelFormat := pf24bit;
      Bitmap.Canvas.Brush.Color := CLWHITE;
      Bitmap.Canvas.Rectangle(0, 0, _tmpbmp.Width, _tmpbmp.Height);
      if (_tmpbmp.Height < Bitmap.Height) and (_tmpbmp.Width < Bitmap.Width)
      then
        for i := 0 to _tmpbmp.Height - 1 do
        begin
          Maskline := _tmpbmp.ScanLine;
          MainLine := Bitmap.ScanLine;
          for n := 0 to _tmpbmp.Width - 1 do
          begin
            MainLine[n].B := Maskline[n].B;
            MainLine[n].R := Maskline[n].R;
            MainLine[n].G := Maskline[n]
.G;
          end;
        end;
      _tmpbmp.Free;
      Image1.Picture.Graphic := Bitmap;

....
Можно было просто написать TextOut-om на канве основной картинки, или что-нибудь ещё... Просто сделал заготовку под будущее наложение,
Чтоб было стыдно за код и хотелось что-то поправить shy

Кстати, в ХЕ3 куда-то пропали из меню все Кастом-стили :-(
На Вин7 64 на 2-х машинах их в ветке "appearence" приложения нет, а на ХР32 с того-же дистрибутива есть:-( И физически на диске лежат....
 
xaramamburuДата: Четверг, 05.09.2013, 16:37 | Сообщение # 6
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline

Цитата
Кстати, в ХЕ3 куда-то пропали из меню все Кастом-стили :-( 

Про ХЕ3 сказать ничего не могу, т.к. у меня ее нет.(((

А по поводу ограбленной картинки, то здесь у вас все понятно. Только я имел ввиду немного другое, а конкретно наложение на видео изображение при получении веб-камеры какой либо графической или текстовой информации, с одновременной запись всего этого в файл в реальном режиме времени, пока этого я добиться не могу.(((
 
Форум » Delphi » DirectShow и Delphi. » Можно-ли записать видео с наложенным текстом в файл? (как записать захваченное с камеры видео+звук налож. текст)
Страница 1 из 11
Поиск:


Copyright MyCorp © 2017Конструктор сайтов - uCoz