LINUX.ORG.RU

Ответ на: комментарий от Eddy_Em

У меня уже несколько лет самодельное видеонаблюдение так показывает безо всяких id и обновляемых параметров через url.

Deleted
()
Ответ на: комментарий от Deleted

Хм, надо будет проверить. Я уже давно не возвращался к этой теме.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Я тоже оба варианта сейчас проверил, оба работают.

PraporZadov
() автор топика
Ответ на: комментарий от PraporZadov

Ну, скажем, когда-то я так делал:

<img src="url/makeimage.cgi?someflag=...">
и обновлял этот someflag, чтобы подгружалось следующее изображение и получалось "видео".

Или как здесь:

$('picture').src = CGI + "?video=yes&" + Math.random();

Естественно, т.к. браузеры текут, приходилось так делать:

img_tmout = setTimeout(refresh_image, 60000); // каждую минуту обновляем, экономим память

Если сейчас действительно firefox может показывать mjpeg без таких извращений, достаточно ему и правда подсунуть адрес CGI-скрипта, да расслабиться.

Eddy_Em ☆☆☆☆☆
()

Сколько я помню моушен — нет.
Но можно с минимальной задержкой через вебсервер забирать готовые ролики. При желании можно и плеер напилить и загрузку с нужного места в нём поставить и даже синхронизацию по времени.
Но совсем прямого эфира не будет, будет небольшая задержка.

Goury ★★★★★
()
Ответ на: комментарий от Goury

У меня не трескается, смотрю 640x480 с частотой по кадру в две секунды.

Сейчас проверил. MJPEG поток от motion проксируется nginx бекендом, он соединяется ssh-туннелем с vps в Германии, там проксируется фронтендом на nginx, и с него я забираю поток назад к себе в Москву. Снизу на изображение motion накладывает временную отметку с секундами, и отстает она от сервера не более чем на полсекунды.

Deleted
()
Последнее исправление: somestuff (всего исправлений: 1)
Ответ на: комментарий от PraporZadov

Если только убирать со страницы тег <img ...> с потоком.

Deleted
()
Ответ на: комментарий от PraporZadov

Современный яваскрипт может всё.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Но ведь mjpeg — это и есть листалка скринов в jpeg, которая уже написана и поддерживается всеми современными браузерами.

Deleted
()
Ответ на: комментарий от Goury

Теоретически должно получаться быстрее, или есть результаты практического сравнения mjpeg со слайдшоу на js? И что именно получается быстрее?

Deleted
()
Ответ на: комментарий от Goury

И еще я далек от мира веб-разработки, поэтому спрошу еще один может быть глупый вопрос. Motion умеет делать скрины, складывать их в файловую систему и сохранять их названия в базу данных. И я не понимаю, как сделать нетребовательную к ресурсам листалку скринов, наделанных motion, чтобы при этом не возникло такой проблемы?

Deleted
()
Ответ на: комментарий от Deleted

Практически работает быстрее чем у озвученного варианта с mjpeg.
А именно 800х480 кадры загружаются за 0.2-0.5 секунды, задержка не превышает 0.5 секунды.

Goury ★★★★★
()
Ответ на: комментарий от Deleted

А как нужно делать, чтобы такая проблема возникла?
Вебсервер на какюм-нибудь нжинксе или хоть даже simpleHTTP, клиент на JS.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Даже если будет не успевать, надо замутить прекеширование следующего кадра и сбрасывать таймаут. У кого сетка медленная - просто будут смотреть немного «растянуто» во времени.

deep-purple ★★★★★
()
Ответ на: комментарий от Goury

А именно 800х480 кадры загружаются за 0.2-0.5 секунды, задержка не превышает 0.5 секунды.

У меня с mjpeg такая же задержка, если гонять трафик на 1600км и обратно.

А как нужно делать, чтобы такая проблема возникла?

Ну клиент на JS может только догадываться, что motion уже закончил сохранение нового файла со скрином на сервере. А что случится, если клиент начнет грузить файл, который еще не дописан, или вообще не создан?

Deleted
()
Ответ на: комментарий от Deleted

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

deep-purple ★★★★★
()
Ответ на: комментарий от Deleted

И ничего не случится - просто картинка не загрузится, там будет 404.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

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

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

сервер должен понимать что пора отправить следующий.

Он же должен при этом проверить, готов ли уже следующий кадр, чтобы показывать его, а не 404. И мне не понятно, как реализовать такую проверку, если у нас есть только nginx и JS.

Deleted
()
Ответ на: комментарий от Deleted

Ну я там выше писал что нужно сделать прекеширование следующего кадра. Если покакой-либо причине загрузка кадра не удалась - повторить её через некоторый таймаут. А явно показывать предыдущий успешно загруженный. Код набросать чтоли?

deep-purple ★★★★★
()
Ответ на: комментарий от Deleted

404 случится или будет ждать пока допишет.
JS прекрасно умеет обрабатывать 404.

Goury ★★★★★
()
Ответ на: комментарий от Deleted

Не надо придумывать глупости. 404 это статус, который клиенту следует научиться обрабатывать.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Лор, пожалуйста, прекрати заострять внимание на одном глупом сообщении. Кто-то что-то ляпнет - сразу налетают без разбора свой-чужой. Обязательно надо куснуть. Хотя, с другой стороны в этом есть смысл.

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.