Konstantin18ko
@Konstantin18ko
Стоматолог

Как байтовый поток преобразовать в режиме реального времени?

Есть камера Sony Action Camera HDR-AZ1.
К ней есть API, поддержка которого была остановлена в сентябре 2018г.
При запуске Live mode, при обращении по URL: 192.168.122.1:8080/liveview/liveviewstream GET запросом получаю постоянно скачивающийся файл.
response = requests.post('http://192.168.122.1:8080/sony/camera', json={"method": "startLiveview","params": [],"id": 1,"version": "1.0" })
print(response.content)
with requests.get('http://192.168.122.1:8080/liveview/liveviewstream', stream=True) as r:
    print(r.content)
response = requests.post('http://192.168.122.1:8080/sony/camera', json={"method": "setShootMode","params": ["movie"],"id": 1,"version": "1.0"})
print(response.content)
response = requests.post('http://192.168.122.1:8080/sony/camera', json={"method": "stopLiveview","params": [],"id": 1,"version": "1.0" })
print(response.content)

Вопрос в чем: я получаю байты с этого сайта, их декодирую, получаю изображение в формате JPEG, их клею в ряд, получаю видео, но я не могу начать декодировать, пока не остановлю режим.
Картина такая - получаю байты в виде бинарного файла, декодирую делаю видео.
Нужно: декодировать в реальном времени.
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
@deliro
data = {"method": "startLiveview","params": [],"id": 1,"version": "1.0" }
with requests.post('http://192.168.122.1:8080/sony/camera', json=data, stream=True) as r:
    for chunk in r.iter_content(chunk_size=8192):
        # Делай что-то с куском в 8кб
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
два потока и очередь.
Один поток подключается к камере, выкачивает информацию, кладет ее в очередь. Второй поток забирает данные из очереди и делает с ними все, что ему скажете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы