Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Цитата:
и еще вопрос как можно вывести индикаторы звука ?
На этот счет нужно подумать.
здесь есть кое какие Demo https://prog.olsztyn.pl/paslibvlc/
Еще посмотрите компонент TVideoGrabber более детально работает с видео и аудио http://www.softsoft.ru/development/delphi/173.htm

Последний раз редактировалось Aliens_wolfs; 13.10.2017 в 17:13.
Aliens_wolfs на форуме   Ответить с цитированием
Старый 31.10.2017, 16:17   #12
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

Вопрос такого характера ,directshow вывожу 8 окон видео в одном приложении в XP,эта же программа в 7 ,показывает только 4 окна видео, запустить еще раз свое же приложение ,то можно еще 4 окна вывести. Не понятно в чем проблема где кто ограничивает запуск окон в windows 7, в XP работает нормально. может кто что подскажет ? Может что то настроить нужно в Windows 7?

Спасибо.
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Старый 06.11.2017, 10:43   #13
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

Вот проект который открывает сразу 9 файлов и проигрывает ,если открывать интернет ссылки то открывает только 4 , дальше не запускает не понятно .
проект на delphi xe8
Вложения
Тип файла: zip Проба directshow.zip (3.22 Мб, 3 просмотров)
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Старый 06.11.2017, 10:47   #14
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

вот ссылка на VLC как добавить индикатор звука но не понятно как использовать.
https://www.linux.org.ru/forum/development/11357210
https://www.linux.org.ru/forum/development/11471017
https://wiki.videolan.org/Stream_to_...m%29_tutorial/


В PasLibVlcUni есть такая процедура для получения буфера звуковых данных ,из которых можно потом получить и уровень звука на индикатор , и сами звуковые данные которые можно записать в файл если нужно. Но как её использовать пока не пойму может кто поможет с VLC, просто он лучше работает чем directshow.

Цитата:
var
libvlc_audio_set_callbacks : procedure(
p_mi : libvlc_media_player_t_ptr;
play : libvlc_audio_play_cb;
pause : libvlc_audio_pause_cb;
resume : libvlc_audio_resume_cb;
flush : libvlc_audio_flush_cb;
drain : libvlc_audio_drain_cb;
opaque : Pointer ); cdecl;


Cпасибо.

Последний раз редактировалось АНАТОЛИЙ249; 06.11.2017 в 18:52.
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Старый 09.11.2017, 09:35   #15
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

Кто подскажет как этот граф фильтров соединить программно ?



Спасибо
Изображения
Тип файла: png filter_source.PNG (94.6 Кб, 1 просмотров)

Последний раз редактировалось АНАТОЛИЙ249; 09.11.2017 в 13:41.
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Старый 22.11.2017, 15:39   #16
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

Вопрос такой тоже по directshow:

Eсть 10 Panel ,на которые выводиться видео ,видео выводиться но , размер видео под размеры Panel ,меняется только в последнем. Написано в MSDN что

Однако, если граф фильтров содержит более одного видеорендерера, МГФ взаимодействует только с одним из них (указанным отдельно). Таким образом, работая с несколькими видеоокнами, приложение должно использовать интерфейс IVideoWindow на соответствующем фильтре напрямую. В этом случае нужно пересылать оконные сообщения каждому видеорендереру, используя метод IVideoWindow::NotifyOwnerMessage.

Приложения, которые устанавливают видеоокна в дочерние окна, должны устанавливать пустым обработчик сообщения WM_ERASEBKGND, чтобы избежать неверного отображения содержания окна.


Вопрос: Как отправить сообщение определенному рендеру что бы он изменил размеры под определённый размер Panel ?

Делаю так не работает:


var
FVideoWindow:array[0..9] of IVideoWindow;

procedure Tform1.size(id:integer);
begin

hr:=FVideoWindow[id].NotifyOwnerMessage(pvid[id].Panel2.Handle,WM_SIZE,0,0) ;
if FAILED(hr) then
begin
showmessage('Не могу изменить размер окна видео ');
EXIT;
end;

end;

Спасибо.

Последний раз редактировалось АНАТОЛИЙ249; 22.11.2017 в 16:13.
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Старый 22.11.2017, 22:15   #17
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: Санкт-Петербург
Сообщений: 741
Репутация: 335
По умолчанию

Цитата:
В PasLibVlcUni есть такая процедура для получения буфера звуковых данных ,из которых можно потом получить и уровень звука на индикатор , и сами звуковые данные которые можно записать в файл если нужно. Но как её использовать пока не пойму может кто поможет с VLC, просто он лучше работает чем directshow.
Процедура вызываемая для обработки звука
Код:

procedure libvlc_audio_play_cb(data : Pointer; samples : Pointer; count : Cardinal; pts : Int64); cdecl;
begin
Обрабатываем Sample по полной
end;

Вызываем это процедуру так
Код:

pMedia: libvlc_media_player_t_ptr; у вас этот указатель возможно другой

libvlc_audio_set_callbacks(pMedia, libvlc_audio_play_cb, nil, nil, nil, nil, nil);

И еще я думаю возможно нужно будет задать формат звука с помощью libvlc_audio_set_format

Но сразу предупреждаю звука по умолчанию не будет его нужно будет самому обрабатывать в процедуре libvlc_audio_play_cb

Для просмотра разных процедур смотрите модуль PasLibVlcUnit

Я кстати с видео c Bitmap работаю через libvlc_video_set_callbacks задаю формат видео через libvlc_video_set_format

Вот мой пример для работы vlc там в модуле UVideolibvlcList реализовано много чего, со звуком я для пробы прописал libvlc_audio_set_callbacks тоже туда но пока Sample не обрабатывал. В этом проекте я сделал так что интернет если отключить он пишет канал остановлен, если включить то продолжает трансляцию, по умолчанию в vlc этого нет, там идет зависание при отключке интернета или потери канала)
Вложения
Тип файла: rar Пример PasLibVLC.rar (275.1 Кб, 2 просмотров)

Последний раз редактировалось Aliens_wolfs; 22.11.2017 в 23:39.
Aliens_wolfs на форуме   Ответить с цитированием
Старый 23.11.2017, 11:50   #18
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

Cпасибо Aliens_wolfs огромное за помощь!!!!!!!
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Старый 26.11.2017, 20:08   #19
АНАТОЛИЙ249
Форумчанин
 
Регистрация: 05.02.2007
Сообщений: 81
Репутация: 42
По умолчанию

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


Cпасибо.
Вложения
Тип файла: zip D2DVideoRenderer.zip (81.7 Кб, 2 просмотров)
Тип файла: zip Описание филтра.zip (968.3 Кб, 1 просмотров)

Последний раз редактировалось АНАТОЛИЙ249; 26.11.2017 в 20:15.
АНАТОЛИЙ249 вне форума   Ответить с цитированием
Ответ



Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DirectShow ? wendstor Мультимедиа в Delphi 1 04.06.2012 21:21
c# directshow world12_tk Помощь студентам 2 26.05.2011 07:27
DirectShow @lexender Мультимедиа в Delphi 0 14.04.2009 18:06
DirectShow Windows Мультимедиа в Delphi 4 22.10.2008 18:30




10:19.


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

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


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

RusProfile.ru


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