Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: Web
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
timur16
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 6
1

В сервисе видео-наблюдения на малине с передачей видео-потока на веб страничку добавить картинку

12.08.2018, 18:53. Просмотров 950. Ответов 17
Метки нет (Все метки)

Всем доброго дня! Может не совсем по теме, но у меня похоже такая же проблема.....
Строю сервис видео-наблюдения на малине с передачей видео-потока на веб страничку. Примером для себя взял статью с сайта https://picamera.readthedocs.io/en/r...#web-streaming. Все работает, но захотелось немного приукрасить страничку, добавить картиночку и тп, но.....закинул картинку в папку /var/www/html/, но код ее не видит((
.......
from threading import Condition
from http import server

PAGE="""\
<html>
<head>
<title>picamera MJPEG streaming demo</title>
</head>
<body>
<h1>PiCamera MJPEG Streaming Demo</h1>
<img src="stream.mjpg" width="640" height="480" />
<img src="myphoto.jpg" width="640" height="480" />
</body>
</html>
"""
class StreamingOutput(object):
def __init__(self):
......

выдает ошибку:
Error response
Error code: 404
Message: Not Found.
Error code explanation: 404 - Nothing matches the given URI.

пожалуйста помогите люди добрые
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2018, 18:53
Ответы с готовыми решениями:

Обработка видео с камеры видео наблюдения (для экспертов)
Обработка видео с камеры видео наблюдения (для экспертов) Имеются несколько каналов видео с камер...

Трансляция видео потока с веб камеры и управление
Есть необходимость получения с веб камеры изображения и трансляция его на другой ПК, другой же ПК в...

Delphi: Возможно ли добавить текст из аудио видео потока ?
Привет всем: возможно ли добавить текст из аудио видео потока в memo1 ? пример есть аудиозапись...

Наложить видео с альфа каналом поверх картинки с камеры, чтобы видео не перекрывало картинку
всем привет! стоит такая задача: есть видео в контейнере .mov, которое содержит альфаканал...

Вставить картинку в видео .avi, не ухудшая качесвто видео?
Подскажите программу, с кторой можно вставить картинку в видео (на определенное время) и при этом...

17
Peoples
1380 / 862 / 757
Регистрация: 06.02.2016
Сообщений: 2,283
Записей в блоге: 18
Завершенные тесты: 5
16.08.2018, 11:49 2
timur16, Если полный путь прописать?
HTML5
1
<img src="/var/www/html/myphoto.jpg" width="640" height="480" />
И установлены ли права доступа на файл картинки?
0
Рыжий Лис
Просто Лис
1492 / 744 / 445
Регистрация: 17.05.2012
Сообщений: 2,801
Записей в блоге: 8
16.08.2018, 15:20 3
Peoples, не, глупо.

ТС, в общем смотри, у тебя нет нормального веб-сервера. Самый простой вариант, дописать роутинг для картинки:

Python
1
2
3
4
5
6
7
elif self.path == '/myphoto.jpg':
            self.send_response(200)
            #self.send_header('Content-Type', 'text/html')
            #self.send_header('Content-Length', len(content))
            self.end_headers()
            with open('/var/www/html/myphoto.jpg') as f: 
                self.wfile.write(f.read())
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10989 / 6265 / 507
Регистрация: 09.09.2009
Сообщений: 24,877
16.08.2018, 15:39 4
Цитата Сообщение от Peoples Посмотреть сообщение
Если полный путь прописать?
HTML5
1
<img src="/var/www/html/myphoto.jpg" width="640" height="480" /
читайте доку к веб-серверам, в особенности про DocumentRoot. там гладишь и понимание придет того, как и откуда пишутся абсолютные пути в ссылках...
0
16.08.2018, 15:39
Peoples
16.08.2018, 15:42
  #5

Не по теме:

Dmitry, Да, я понял уже что у него картинка в каталоге серверном. Сначала подумал, вдруг ТС просто путь по умолчанию оставил, для python проги

0
Рыжий Лис
16.08.2018, 15:47
  #6

Не по теме:

Peoples, в любом случае домашняя директория сайта точно не будет равна корню /

0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10989 / 6265 / 507
Регистрация: 09.09.2009
Сообщений: 24,877
16.08.2018, 15:47 7
Peoples, вы сами себя "закапываете". по ссылкам с веб-страницы (в том числе и за картинками) ходит БРАУЗЕР клиента. и он это делает именно как браузер (либо относительно текущей страницы, либо относительно DocumentRoot сервера)! на локальную файловую систему компьютера, на котором установлен апач (или что там еще) - ему плевать с высокой колокольни...
0
__py__
71 / 142 / 13
Регистрация: 29.02.2016
Сообщений: 821
17.08.2018, 01:07 8
Google - это легальный компьютерный троян, который давно имеет доступ к твоей системе. Ты просто не знаешь ещё об этом.
0
timur16
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 6
17.08.2018, 10:05  [ТС] 9
Цитата Сообщение от Рыжий Лис Посмотреть сообщение

ТС, в общем смотри, у тебя нет нормального веб-сервера. Самый простой вариант, дописать роутинг для картинки:

Python
1
2
3
4
5
6
7
elif self.path == '/myphoto.jpg':
            self.send_response(200)
            #self.send_header('Content-Type', 'text/html')
            #self.send_header('Content-Length', len(content))
            self.end_headers()
            with open('/var/www/html/myphoto.jpg') as f: 
                self.wfile.write(f.read())
Друзья, спасибо что откликнулись)) Сделал как советует Рыжий Лис... Код мою картинку увидел, но отправить в браузер похоже не может(( Ответ найти оперативно не получается. Может ошибки из консоли вам подскажут куда меня отправить))))

[17/Aug/2018 09:53:13] "GET /index.html HTTP/1.1" 200 -
[17/Aug/2018 09:53:13] "GET /stream.mjpg HTTP/1.1" 200 -
[17/Aug/2018 09:53:13] "GET /myphoto.jpg HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('10.8.0.14', 58488)
Traceback (most recent call last):
File "/usr/lib/python3.4/socketserver.py", line 613, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.4/socketserver.py", line 344, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.4/socketserver.py", line 669, in __init__
self.handle()
File "/usr/lib/python3.4/http/server.py", line 398, in handle
self.handle_one_request()
File "/usr/lib/python3.4/http/server.py", line 386, in handle_one_request
method()
File "/home/pi/mjpeg_streaming.py", line 59, in do_GET
self.wfile.write(f.read())
File "/usr/lib/python3.4/codecs.py", line 313, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10989 / 6265 / 507
Регистрация: 09.09.2009
Сообщений: 24,877
17.08.2018, 11:35 10
Цитата Сообщение от timur16 Посмотреть сообщение
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
переведите фразу и разбирайтесь с ее причиной
0
Рыжий Лис
Просто Лис
1492 / 744 / 445
Регистрация: 17.05.2012
Сообщений: 2,801
Записей в блоге: 8
17.08.2018, 12:20 11
Может так?
Python
1
self.wfile.write(f.read().encode('utf-8'))
0
timur16
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 6
17.08.2018, 12:41  [ТС] 12
все равно ошибка: (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Гуглю "raspberry DocumentRoot сервера nginx".....
0
Рыжий Лис
Просто Лис
1492 / 744 / 445
Регистрация: 17.05.2012
Сообщений: 2,801
Записей в блоге: 8
17.08.2018, 13:22 13
Кстати, да. Можно поставить полноценный nginx, а путь /stream.mjpg как обратный прокси перенаправлять на питон.

Код
server {
  listen 80;
  server_name example.org;
 
  location / {
    #…
  }
 
  location /stream.mjpg {
    proxy_pass http://localhost:8000;
  }
}
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10989 / 6265 / 507
Регистрация: 09.09.2009
Сообщений: 24,877
17.08.2018, 13:22 14
эта ошибка:
Цитата Сообщение от timur16 Посмотреть сообщение
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
..не имеет никакого отношения к DocumentRoot. у вас что-то не то с содержимым, которое вы пытаетесь выталкивать в браузер. видимо, с кодировкой файла или его форматом (применительно к php при подобных ошибках обычно отправляют гуглить про "сохранение файлов в utf без BOM").
0
Рыжий Лис
Просто Лис
1492 / 744 / 445
Регистрация: 17.05.2012
Сообщений: 2,801
Записей в блоге: 8
17.08.2018, 13:41 15
Цитата Сообщение от Dmitry Посмотреть сообщение
с кодировкой файла
У файла нет кодировки Это бинарник (картинка).
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10989 / 6265 / 507
Регистрация: 09.09.2009
Сообщений: 24,877
17.08.2018, 13:51 16
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Это бинарник
что именно там - мне не известно, равно как и сам Python. но вот гугл при поиске по тексту
Цитата Сообщение от timur16 Посмотреть сообщение
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
...выдает превеликое множество ответов, и думаю, что какие-то из них вполне в состоянии решить проблему. и уж точно ни в одном из них не увидел ничего про DocumentRoot...
0
Garry Galler
2065 / 1557 / 604
Регистрация: 28.10.2013
Сообщений: 4,021
17.08.2018, 17:59 17
Лучший ответ Сообщение было отмечено timur16 как решение

Решение

Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Это бинарник
И зачем тогда открывать его как текст? Если вы не указали кодировку, это не значит, что python ее не применит и прочитает файл как двоичный.
open(file,"rb")
2
timur16
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 6
18.08.2018, 02:40  [ТС] 18
quote="Garry Galler;12846019"]И зачем тогда открывать его как текст? Если вы не указали кодировку, это не значит, что python ее не применит и прочитает файл как двоичный.
open(file,"rb")[/quote]спасибо) сейчас поэкспериментирую[

Добавлено через 15 секунд
quote="Garry Galler;12846019"]И зачем тогда открывать его как текст? Если вы не указали кодировку, это не значит, что python ее не применит и прочитает файл как двоичный.
open(file,"rb")[/quote]спасибо) сейчас поэкспериментирую[

Добавлено через 8 часов 7 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
И зачем тогда открывать его как текст? Если вы не указали кодировку, это не значит, что python ее не применит и прочитает файл как двоичный.
open(file,"rb")
Всё получилось! Спасибо)))
0
18.08.2018, 02:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2018, 02:40

Видео веб-камера не снимает видео
Доброго времени суток, случилась такая проблема - стоит видео веб камера, Описание драйвера...

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

Камеры видео-наблюдения
Здравствуйте. Уважаемые форумчане. Возник вопрос покупки системы видео наблюдения для торговой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru