Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2017, 12:35   #21
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

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

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

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

Код:
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 в 09:53.
Aliens_wolfs вне форума Ответить с цитированием
Старый 29.04.2017, 15:48   #24
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Очень странно. Сейчас еще раз запустил свой проект. Ничего не тормозит и звук вперёд не уходит. Даже на blu-ray диске. А в прошлый раз было почти слайд-шоу. В этом нет логики.
Кстати, ваш код открывает не все файлы. Начал разбираться почему, и нашел это:
Код:
 
 Result:= pGraphBuilder.RenderFile(PWCHAR(WideString(FileName)), NIL);
неплохо так затролили ктож так граф строит, а?
BLACK_RAIN вне форума Ответить с цитированием
Старый 29.04.2017, 15:54   #25
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

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

Я с примера взял не заметил На D7 это прокатывает.
Исправляю
Код:
Result:= pGraphBuilder.RenderFile(StringToOleStr(FileName), NIL);

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

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

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

Если про это
Код:
   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 в 21:35.
Aliens_wolfs вне форума Ответить с цитированием
Старый 01.05.2017, 09:08   #29
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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