lazarus & ffplay

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

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

Ответить
arriah
новенький
Сообщения: 94
Зарегистрирован: 29.07.2015 15:42:35

lazarus & ffplay

Сообщение arriah »

Приветсвую уважаемое сообщество,

Появилась необходимость воспроизвести видео на форме.
Воспроизвести нужно RTSP поток. Проблем с воспроизведением через всякие плееры нет, но это не подходит по нескольким причинам.
Нужно вывести изображения с нескольких IP камер.
Сейчас это реализовано при помощи motion, но есть проблемка: при одновременном просмотре потока и записи (которая обязательна) наблюдаются задержка. То есть то что происходит перед камерой в реальном времени, на экране появляется спустя некоторое время, доходит до 30 секунд задержки. Просмотр видео с камер через браузер.
Если камер до 4 то задержка минимальна и приемлема, но если камер больше - задержка больше. При отключении записи - задержка уменьшается. Но запись нужна.
А так как браузер не умеет показывать RTSP напрямую, вот решил при помощи лазаруса написать софтину, которая будет показывать поток, а ffmpeg писать на диск.
Тестировал на 5 камерах при помощи VLC, вроде нормально работает - vlc показывает, motion пишет...

Накатил компонент paslibvlc, вроде неплохо справляется, но требует библиотеки VLC, а это не есть хорошо, ибо таскать с собой, либо ставить в систему плеер.
Но так как везде установлен motion, который за собой тянет ffmpeg, ffplaer решил переписать приложение, но вот к сожалению не нашел компонента ffplaer на просторах инета.

Может кто подскажет, как вывести видео в лазарусе использую ffplayer?
Все работает под gentoo
arriah
новенький
Сообщения: 94
Зарегистрирован: 29.07.2015 15:42:35

Сообщение arriah »

Снег Север писал(а):https://github.com/DelphiForBroadcasting/ffmpeg-delphi
не подойдет?

Смотрел я ее, под Дельфи..
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Попробуй это вариант (это так сказать "исходная точка" моего недо-мега-проекта "цифровая оптика" :wink: )
Laz_kamera_pol_izobr.7z
Или все-же лучше возьми чуть модифицированную версию ... (Но она тоже из серии "проще не бывает" )
Truba_DS_0_001.7z

Зы
Извиняюсь за невнимательность! :idea: Мои поделки работают с обычными Веб камерами а не с потоковым видео RTSP из интернета.
(Лучшее что умеют более поздние версии "подзорной трубы" это "сетевое" покадровое чтение jpg-ов по html протоколу )

Но вдруг все-же пригодятся...
Потому что существуют вот такие приблуды

1 Плагин для виртуальной web-камеры:
http://vlc2vcam.com/download.html
2 VCam - полноценный эмулятор веб-камеры
https://www.softportal.com/get-24201-vcam.html

и т.д.
https://altercam.com/rus/virtual-webcam.html
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

Не уверен, что поможет, но на чистом v4l можно получать кадры видеопотока с помощью моего проекта: http://rubirobot.ru/webcam/
Он, правда, для лего-роботов изначально разработан, там особо не разгонишся с тяжелой обработкой, поэтому на входе только YUYV-формат, его вроде как большинство камер поддерживают. Никаких внешних библиотек не требует. А там уж с полученными кадрами чего хочешь, то и делаешь.

Если камера IP, то можно создать виртуальную камеру v4l (проекта v4loopback). Но сам этого не пробовал.
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

arriah писал(а):Может кто подскажет, как вывести видео в лазарусе использую ffplayer?
Зачем, не проще ли поработать с самой библиотекой напрямую?
arriah
новенький
Сообщения: 94
Зарегистрирован: 29.07.2015 15:42:35

Сообщение arriah »

olegy123 писал(а):Зачем, не проще ли поработать с самой библиотекой напрямую?

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

Сообщение olegy123 »

FFmpeg любят ломать зависимости, сами разработчики внутри переругались, в итоге есть два продукта Libav и ffmpeg. Первые хотели ориентироваться на аппаратных производителей. Вторые плевать хотели, все новое тащили в код.
Поэтому если есть перевод .h в .pas то как правило под ffmpeg и под старые либлы.
arriah писал(а):Если есть пример кода, поделись
а что нужно? я делал оберку .so для сводил все в вызове несколько функций.
Ответить