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

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

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

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

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

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

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

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

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

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

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

вот ссылка на 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 в 17:52.
АНАТОЛИЙ249 вне форума Ответить с цитированием
Старый 09.11.2017, 08:35   #15
АНАТОЛИЙ249
Пользователь
 
Регистрация: 05.02.2007
Сообщений: 91
По умолчанию

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



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

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

Вопрос такой тоже по 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 в 15:13.
АНАТОЛИЙ249 вне форума Ответить с цитированием
Старый 22.11.2017, 21:15   #17
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Цитата:
В 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 Кб, 37 просмотров)

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

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

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


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

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


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

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

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


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