Всем привет
Думаю, проблема с китайскими DVR, не имеющими возможностей вещать rtp, знакома многим. Проблема состоит в том, что получить видео с такого DVR можно либо через родную утилиту (которая под вайном крашится), либо из веб-интерфейса (с ActiveX).
Первую часть проблемы я решил, расковыряв протокол. Там всё относительно несложно - достаточно отправить один пакет (всегда одинаковый, только поле с номером камеры меняется) и в ответ польётся поток. Вторая часть проблемы хитрее - я хочу увидеть 20-30 таких потоков в мозайке, сделанной VLC
Для этого был написан мини-скрипт на питоне, который ждёт соединения извне (vlc умеет читать tcp://) и начинает вычитывать поток от DVR, зеркалируя его в новый сокет. И это даже работает и работает стабильно
Не работает только одно - мозайка (и вообще сколь бы то ни было долгое воспроизведение потока). vlc с мозайкой дохнет буквально через 4-7 секунд после начала вещания - говорит, дошёл до EOF
Я попробовал пойти другим путём и стал писать поток на диск и одновременно вычитывать его vlc. Но и тут та же проблема - vlc очень быстро доходит до конца файла и перестаёт показывать что-либо
Я, честно говоря, уже лишился идей. DVR шлёт голый h264-es, то есть с рандомного места плеер начать это показывать не может. Была предложена идея заворачивать это в контейнер и мультикастить, но блин, ковыряться с оборачиванием видео в контейнер мне совсем не хочется
Короче, на текущий момент я могу получить поток и записать его в файл, а потом проиграть этот файл. Но так не годится - плеер каждый раз будет играть запись сначала, что не есть хорошо
Многоуважаемый All, а есть ли у тебя какие-нибудь разумные идеи?
Спасибо!