Форум программистов
Реклама:
Гарантия безопасности сети с UTM-системой ИКС.
Защита ПД, межсетевой экран, контроль доступа, фильтрация трафика, система предотвращения вторжений.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 21.04.2017, 13:35   #21
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: Санкт-Петербург
Сообщений: 706
Репутация: 335
По умолчанию

У меня вообще pentium G640, видео встроенная Intel(R)HD
Вроде не тормозит видео
Aliens_wolfs вне форума   Ответить с цитированием
Старый 21.04.2017, 13:44   #22
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 467
Репутация: 101
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
У меня вообще pentium G640, видео встроенная Intel(R)HD
Вроде не тормозит видео
моя кастрюля по-мощнее будет
BLACK_RAIN вне форума   Ответить с цитированием
Старый 27.04.2017, 13:52   #23
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: Санкт-Петербург
Сообщений: 706
Репутация: 335
По умолчанию

Вот через ресурс если нужно тоже сделал

Код:

function TForm1.Play(FileName: String): HRESULT;
var
  MediaType: TAMMediaType;
  pin : IPin;
begin
  ClearGraph;
try
  Result:= CoCreateInstance(CLSID_FilterGraph, NIL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, pGraphBuilder);
   if Result <> S_OK then
  exit;

  Result:= CoCreateInstance(CLSID_SampleGrabber, NIL, CLSCTX_INPROC_SERVER, IID_IBaseFilter,
   pFilterSampleGrabber);
   if Result <> S_OK then
  exit;
   Result:= pFilterSampleGrabber.QueryInterface(IID_ISampleGrabber, pVideoGrabber);
   if Result <> S_OK then
  exit;

  Result:= pGraphBuilder.AddSourceFilter(StringToOleStr(FileName), 'source file', pSource);
   if Result <> S_OK then
  exit;

  Result:= CoCreateInstance(CLSID_CaptureGraphBuilder2, NIL, CLSCTX_INPROC_SERVER, 
  IID_ICaptureGraphBuilder2, pCaptureGraphBuilder);
  if Result <> S_OK then
  exit;
  pCaptureGraphBuilder.SetFiltergraph(pGraphBuilder);


  FillChar(MediaType, SizeOf(MediaType), 0);
  MediaType.majortype := MEDIATYPE_Video;
  MediaType.subtype := MEDIASUBTYPE_RGB24;
  MediaType.formattype := FORMAT_VideoInfo;

  pVideoGrabber.SetMediaType(MediaType);
  pVideoGrabber.SetBufferSamples(True);
  pVideoGrabber.SetOneShot(False);
  pVideoGrabber.SetCallback(Self, 0);
  pGraphBuilder.AddFilter(pFilterSampleGrabber, 'Sample Grabber');

   Result := pCaptureGraphBuilder.RenderStream(nil, nil, pSource, nil, nil);
    if Result <> S_OK then
  exit;

   Result := pCaptureGraphBuilder.RenderStream(nil, @MEDIATYPE_Audio, pSource, nil, nil);
   if Result <> S_OK then
  exit;

  Result:= CoCreateInstance(CLSID_NullRenderer, NIL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, pNullRenderer);
  if Result <> S_OK then
  exit;
  pGraphBuilder.AddFilter(pNullRenderer, 'Null Renderer');

  RemoveDefault(pGraphBuilder, pNullRenderer, pFilterSampleGrabber);

   Result:= pGraphBuilder.QueryInterface(IID_IBasicAudio, pBasicAudio);
  if Result <> S_OK then
  exit;
  pBasicAudio.put_Volume(-1000);

  pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
  pGraphBuilder.QueryInterface(IID_IMediaPosition, pMediaPosition);

  pMediaPosition.put_CurrentPosition(0);
  pMediaControl.Run;

 finally
 if Result <> S_OK then
begin
  Showmessage(SysErrorMessage(GetLastError));
  ClearGraph;
end;
  end;
end;


Последний раз редактировалось Aliens_wolfs; 28.04.2017 в 10:53.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 29.04.2017, 16:48   #24
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 467
Репутация: 101
По умолчанию

Очень странно. Сейчас еще раз запустил свой проект. Ничего не тормозит и звук вперёд не уходит. Даже на blu-ray диске. А в прошлый раз было почти слайд-шоу. В этом нет логики.
Кстати, ваш код открывает не все файлы. Начал разбираться почему, и нашел это:
Код:

 
 Result:= pGraphBuilder.RenderFile(PWCHAR(WideString(FileName)), NIL);

неплохо так затролили ктож так граф строит, а?
BLACK_RAIN вне форума   Ответить с цитированием
Старый 29.04.2017, 16:54   #25
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 467
Репутация: 101
По умолчанию

Хотя, я же позавчера драйверы на встроенное видео переустановил. Может это повлияло.
BLACK_RAIN вне форума   Ответить с цитированием
Старый 29.04.2017, 22:42   #26
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: Санкт-Петербург
Сообщений: 706
Репутация: 335
По умолчанию

Я с примера взял не заметил На D7 это прокатывает.
Исправляю
Код:

Result:= pGraphBuilder.RenderFile(StringToOleStr(FileName), NIL);


Последний раз редактировалось Aliens_wolfs; 29.04.2017 в 22:56.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 30.04.2017, 08:26   #27
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 467
Репутация: 101
По умолчанию

Дык яж не про это... Ладно, проехали
BLACK_RAIN вне форума   Ответить с цитированием
Старый 30.04.2017, 22:24   #28
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: Санкт-Петербург
Сообщений: 706
Репутация: 335
По умолчанию

Цитата:
Дык яж не про это... Ладно, проехали
Поясни

Если про это
Код:

   Result := pCaptureGraphBuilder.RenderStream(nil, nil, pSource, nil, nil);

Так оно работает так как рендер соединяется вот в этой функции и берет кодеки по умолчанию из системы
Код:

RemoveDefault(pGraphBuilder, pNullRenderer, pFilterSampleGrabber);

если например сделать так то не все форматы видео работают т.к. нужно кодировать в нужный формат
Код:

Result := pCaptureGraphBuilder.RenderStream(nil, @MEDIATYPE_Video, pSource, pFilterSampleGrabber, нужный фильтр);

BLACK_RAIN если можешь помоги вот в этой теме разобраться http://www.programmersforum.ru/showthread.php?t=307706

Последний раз редактировалось Aliens_wolfs; 30.04.2017 в 22:35.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 01.05.2017, 10:08   #29
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 467
Репутация: 101
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Поясни
В вашем первом коде (пост №11) используется метод RenderFile(). Таким образом, большинство видео-файлов просто не открывается.
И я еще не понял, зачем убирать из графа Color Space Converter? Он же вроде нужен и всё-равно сам добавляется.

Последний раз редактировалось BLACK_RAIN; 01.05.2017 в 10:14.
BLACK_RAIN вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Wi Fi глючит nikox12 Железо 5 03.05.2014 20:26
Глючит изображение Problem Общие вопросы Delphi 9 22.08.2011 07:31
глючит комп voldemen Железо 1 15.05.2010 13:37
глючит Oracle Dawystrik SQL, базы данных 11 13.09.2009 19:19
Глючит Excel ---FISHER--- Общие вопросы Delphi 34 09.08.2009 20:30




23:37.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru