Настройка воспроизведения видео через paslibvlc

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Настройка воспроизведения видео через paslibvlc

Сообщение jsa » 20.02.2019 06:34:40

запускаю воспроизведение видео через paslibvlc.

Заметил, что если запущена программа OBS для стриминга на ютуб, которая передает поток с ip камеры
То видео выводимое в моей программе начинает подтормаживать и пропускать кадры.
Если выключить источник (ip камеру) то видео тут же начинает воспроизводиться гладко.
Процессор и память заняты на половину (всей системой конечно), т.е. дело не в нехватке ресурсов.
Если тот же самый видеофайл запустить в тех же условиях в VLC плеере, то там проблема вообще не наблюдается.
Т.е. дело видимо в установках и параметерах запуска видео через paslibvlc.

вывел в своей программе на форму установку 2х параметров - UseOverlay и VideoOutput
т.к. слабо разбираюсь в вопросе воспроизведения видео, просто методом тыка попробовал их перебрать.
Эффекта вообще никакого не заметил.

Есть какие-нибудь идеи как победить?
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Vadim » 20.02.2019 07:08:58

jsa
Надо сначала выяснить, чего именно нужно побеждать... :-)
В пакетах FCL есть компонент "libvlc" попробуйте через него проверить. Там есть пара демонстрашек, так что времени на создание проги не потребуется.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Настройка воспроизведения видео через paslibvlc

Сообщение jsa » 20.02.2019 07:59:50

Vadim писал(а):В пакетах FCL есть компонент "libvlc" попробуйте через него проверить. Там есть пара демонстрашек, так что времени на создание проги не потребуется.

Я с него и начал.
Но там возможностей или по беднее, или они не так просты и явны как в paslibvlc
Не помню точно что, но некоторые вещи просто не знал как сделать.

Надо сначала выяснить, чего именно нужно побеждать...

В этом и загвоздка. Даже не знаю, что гуглить.
На форуме OSB есть рекомендации как снизить нагрузку на процессор и видеокарту. Но тут другой случай.
Загрузки сильной нет. И простой VLC с этим же видео, отлично работает параллельно OBS.
Ощущение, что какие-то специфичные кодеки/режимы/части аппаратного кодека, OBS не может поделить с библиотекой VLC запущенной через paslibvlc
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Vadim » 20.02.2019 08:47:36

Вот похоже что какие-то специфичные кодековы проблемы, только непонятно какие... А есть возможность заменить аппаратный кодек на софтовый? Сразу говорю, что я не знаю. :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Лекс Айрин » 20.02.2019 09:13:54

Судя по всему, программа стриминга зашаривает для себя всю полосу пропускания. Сам vlc скорее всего выдает уже пропущенный через себя поток, а вот у библиотеки воспроизведения нет такой возможности и обе проги просто дерутся за камеру.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Vadim » 20.02.2019 09:19:05

А вот, кстати, может в paslibvlc видеобуфер можно увеличить?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Настройка воспроизведения видео через paslibvlc

Сообщение jsa » 20.02.2019 16:36:16

Лекс Айрин писал(а):Сам vlc скорее всего выдает уже пропущенный через себя поток, а вот у библиотеки воспроизведения нет такой возможности и обе проги просто дерутся за камеру.

Уточняю.
OBS выдает поток RTSP с камеры
А моя программа и VLC в этом эксперименте играют файл с диска.

Добавлено спустя 50 секунд:
Vadim писал(а):А вот, кстати, может в paslibvlc видеобуфер можно увеличить?

Буфер имеет смысл при воспроизведении потока с камеры, но играется файл с диска.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Лекс Айрин » 20.02.2019 16:54:51

jsa, а через какие устройства играется видео и поток с камеры? Дело в том, что в системе несколько устройств для воиспродимого звука и видео и часть из них очень тормозные.
Зря ты думаешь, что видебуфер нужен только для камер. При воиспроизводимого с диска он тоже не помешает.
Посмотри какие кодеки используются при воиспроизведении. Возможно есть более быстрые, которые библиотека не видит. Попробуй задействовать аппаратное ускорение.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Настройка воспроизведения видео через paslibvlc

Сообщение olegy123 » 21.02.2019 13:23:32

jsa писал(а):Ощущение, что какие-то специфичные кодеки/режимы/части аппаратного кодека, OBS не может поделить с библиотекой VLC запущенной через paslibvlc

Очень важно знать через что идет зажатие/разжатие.. вполне возможно что проблема сидит не в самом vlc и тем более не в paslibvlc который является оберткой vlc,
А в использовании кодеков и их настройка.
Сами кодеки могут работать с аппаратными устройствами в основном это CPU и GPU(существуют специализированные FPGA платы) и их способность кодировать/ перекодировать может быть разной. Очень серьезно может влиять на аппаратный наличие DMA и правильная настройка IRQ(бывает так что на одном IRQ сидят несколько устройств и процессору еще нужно разобраться кто там звонит, кому высвободит шину данных, в какой очередности и приоритету), даже расположение в PCI(ex) слоту, наличие соседей на слотах может сильно играть на скорость.
Так что не все так просто.

Самый простой способ - поднять натуральный VLC и играть настройками, тем самым понять что нужно сделать.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Настройка воспроизведения видео через paslibvlc

Сообщение jsa » 22.02.2019 18:39:32

Очень важно знать...

Спасибо конечно, но это всё чисто теоретические рассуждения. Которые не понятно как применить в paslibvlc
Самый простой способ - поднять натуральный VLC и играть настройками, тем самым понять что нужно сделать.

Сразу написал в первом сообщении - "Если тот же самый видеофайл запустить в тех же условиях в VLC плеере, то там проблема вообще НЕ наблюдается."

P.S.
В VLC пытался понять как выглядят стандартные настройки конфигурации, т.е. те при которых видео нормально воспроизводится, и не смог найти.

И еще попробовал в StartOptions прописать на этапе проектирования хотя бы опцию
--sepia-intensity 250
или
sepia-intensity 250

Но видео не меняется.
Сначала думал что как-то не атк прописываю, но если превысить значение (а максимальное 255) и написать так
--sepia-intensity 300
То видео не воспроизводится. Значит на опцию есть реакция, но какая-то странная.

В итоге. мало того что не понятно какие настройки надо задавать, так еще похоже и задать их толком не получится.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Лекс Айрин » 22.02.2019 19:38:32

jsa, возможно тут как с прозрачностью в лазаре -- один параметр включает, а другой регулирует.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Настройка воспроизведения видео через paslibvlc

Сообщение jsa » 28.02.2019 19:34:37

Проблему получилось снять, не решить, а снять.
В OBS-studio в настройках видео, стоит Базовое разрешение 1920*1080 и Выходное разрешение 1280*720
Если фильтр масштабирования выбран Метод Ланцоша, то проблема наблюдается.
Если же выбрать один из двух других Бикубический или Билиненый, то проблемы нет.

Это не объясняет почему при Методе Ланцоша, VLC работает нормальное, а pasLibVLC нет.
Но этого достаточно чтобы снять вопрос.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Настройка воспроизведения видео через paslibvlc

Сообщение Лекс Айрин » 28.02.2019 20:06:26

jsa, потому что указанный метод более ресурсоемкий. Возможно, следует поиграть в программе с размером резервируемой памяти. Той, которая зашаривает изначально. А может быть и так, что библиотеке надо тоже резервировать память, но менеджер памяти просто не может это дело нормально но подхватить.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Настройка воспроизведения видео через paslibvlc

Сообщение SSerge » 01.03.2019 06:10:48

jsa писал(а):стоит Базовое разрешение 1920*1080 и Выходное разрешение 1280*720


ничего, что у вас двойная обработка потока и резамплинг, что делается скорее всего исключительно средствами CPU?

jsa писал(а):Процессор и память заняты на половину (всей системой конечно), т.е. дело не в нехватке ресурсов.


Нда? А ядер сколько у процессора? Если два, то сказанное выше в реалиях того, что сообщает о загрузке Windows 10, означает вообще то постоянную перегрузку процессора (одно ядро молотит на максимуме, а то что остальные свободны - пофиг. Потому что многопоточность библиотекой вряд ли поддерживается).
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Настройка воспроизведения видео через paslibvlc

Сообщение jsa » 02.03.2019 07:36:26

SSerge писал(а):ничего, что ...?

Я знаю как ответить на вопросы "Как...?", "Почему...?", "Зачем...?"
Но я не знаю о чем вопрос "Ничего, что...?"

SSerge писал(а):Нда? А ядер сколько у процессора? Если два, то сказанное выше в реалиях того, что сообщает о загрузке Windows 10, означает вообще то постоянную перегрузку процессора (одно ядро молотит на максимуме, а то что остальные свободны - пофиг. Потому что многопоточность библиотекой вряд ли поддерживается).

На вопрос Нда? ответ знаю - Нда.

Если внимательно, а не через строчно читать мое первое сообщение, то там внезапно обнаруживается такая фраза "Если тот же самый видеофайл запустить в тех же условиях в VLC плеере, то там проблема вообще не наблюдается."
А теперь встречный вопрос. Какая тебе разница сколько ядер, на сколько загружено конкретное ядро. И к чему твои заявления о том, что библиотека VLC многопоточность наврятли поддерживает?
Если черным по синему ясно написано, что та же самая библиотека, но используемая НЕ из paslibvlc , а из плеера VLC НОРМАЛЬНО воспроизводит видео паралельно с OBS который жмет поток ресурсоемким методом Ланцоша.
Т.е. ДЕЛО В НАСТРОЙКЕ параметров библиотеки vlc.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru