Онлайн трансляция потока с камер GoPro
Эти же лайфхаки позволяют транслировать видео и аудио потоки практически с любой камеры GoPro.
Для начала, подключаем по Wi-Fi нашу камеру к ноутбуку, далее открываем страницу: http://10.5.5.9/gp/gpControl/execute?p1=gpStream&a1=proto_v2&c1=restart и затем мы можем получить поток UDP, используя этот URL: udp: //10.5.5.9: 8554
ПРИМЕЧАНИЕ. При использовании ffplay (ffMPEG) попробуйте использовать флаг nobuffer для потока с низкой задержкой.
Пример:
ffplay -fflags nobuffer udp://:8554
Это уменьшает задержку примерно до 0,5 с, что соответствует тому, что я получаю в приложении GoPro на Android.
В дополнение к видеопотоку (# 0: 0) и аудиопотоку (# 0: 1) существует третий поток (# 0: 2), который ffplay не распознает, и это увеличивает время, необходимое для обнаружения ffplay. Можно использовать -probesize 16192 для обнаружения первых двух (хотя я не слышу звука) и сократить время запуска до 1,5 с вместо 6,5 с.
Кроме того, иногда ffplay не может обнаружить контейнер -f: v mpegts. В общем, это то, что я использую:
ffplay -fflags nobuffer -f:v mpegts -probesize 8192 udp://:8554
Дополнения, примечания и команды
GoPro HERO4 Session — это упрощенная версия популярной камеры HERO. Из-за этого камера отвечает на запросы GET, только когда находится в режиме APP, чтобы переключить камеру в режим APP, отправьте волшебный пакет (WoL) со следующими параметрами: MAC-АДРЕС КАМЕРЫ, 10.5.5.9 как IP-АДРЕС, Маска подсети 255.255 .255.0, порт 9. Для сеанса Hero4 этот магический пакет должен быть отправлен, перед тем, как вы хотите получить поток с камеры.
И чтобы убедиться, что у вас есть доступ к камере, ПОЛУЧИТЕ статус 31 камеры и убедитесь, что он не равен 0 (больше информации на CameraStatus.md)
Режим protune на камере GoPro HERO
Согласно версии прошивки 2.00, сеанс GoPro HERO 4 позволяет управлять настройками Protune для режима Video, но некоторые параметры отличаются от камер HERO4 Black / Silver.
Управление:
- off: http://10.5.5.9/gp/gpControl/setting/10/0
- on: http://10.5.5.9/gp/gpControl/setting/10/1
Баланс белого:
- Auto: http://10.5.5.9/gp/gpControl/setting/11/0
- 3000k: http://10.5.5.9/gp/gpControl/setting/11/1
- 5500k: http://10.5.5.9/gp/gpControl/setting/11/2
- 6500k: http://10.5.5.9/gp/gpControl/setting/11/3
- Native: http://10.5.5.9/gp/gpControl/setting/11/4
Цвет:
- GOPRO: http://10.5.5.9/gp/gpControl/setting/12/0
- Flat: http://10.5.5.9/gp/gpControl/setting/12/1
ISO:
- 1600: http://10.5.5.9/gp/gpControl/setting/13/1
- 400: http://10.5.5.9/gp/gpControl/setting/13/2
Резкость:
- ON: http://10.5.5.9/gp/gpControl/setting/14/3
- OFF: http://10.5.5.9/gp/gpControl/setting/14/4
EV:
Value | URL |
---|---|
+2 | http://10.5.5.9/gp/gpControl/setting/15/0 |
+1.5 | http://10.5.5.9/gp/gpControl/setting/15/1 |
+1 | http://10.5.5.9/gp/gpControl/setting/15/2 |
+0.5 | http://10.5.5.9/gp/gpControl/setting/15/3 |
0 | http://10.5.5.9/gp/gpControl/setting/15/4 |
-0.5 | http://10.5.5.9/gp/gpControl/setting/15/5 |
-1 | http://10.5.5.9/gp/gpControl/setting/15/6 |
-1.5 | http://10.5.5.9/gp/gpControl/setting/15/7 |
-2 | http://10.5.5.9/gp/gpControl/setting/15/8 |
Стриминг
Сеанс GoPro HERO4 на прошивке 2.00 работает несколько иначе, когда дело доходит до потоковой передачи. Вы по-прежнему используете те же методы, которые описаны в документации по Livestreaming, но вам необходимо HTTP GET URL-адрес состояния http://10.5.5.9/gp/gpControl/statusuntils status: 31 (количество подключенных клиентов) имеет значение выше 0 (> = 1). Тогда канал будет работать через UDP-порт 8554. Обратитесь к этому сценарию Python на примере реального мира.
Поскольку я работаю с протоколами UDP и системными вызовами, я рекомендую использовать инструмент GoProStream, который является простым в использовании потоковым клиентом GoPro, написанным на Python: https://cloud.mail.ru/public/2vvg/qAh95XLzM
Расширенные параметры потоковой передачи
Параметры потоковой передачи:
Битрейт потока передачи :
Поддерживает любое количество (например, 7000000), но ограничено пропускной способностью Wi-Fi, могут появляться потери пакетов и видео. Правильный идентификатор параметра — 62!
- 250 Kbps: http://10.5.5.9/gp/gpControl/setting/62/250000
- 400 Kbps: http://10.5.5.9/gp/gpControl/setting/62/400000
- 600 Kbps: http://10.5.5.9/gp/gpControl/setting/62/600000
- 700 Kbps: http://10.5.5.9/gp/gpControl/setting/62/700000
- 800 Kbps: http://10.5.5.9/gp/gpControl/setting/62/800000
- 1 Mbps: http://10.5.5.9/gp/gpControl/setting/62/1000000
- 1.2 Mbps: http://10.5.5.9/gp/gpControl/setting/62/1200000
- 1.6 Mbps: http://10.5.5.9/gp/gpControl/setting/62/1600000
- 2 Mbps: http://10.5.5.9/gp/gpControl/setting/62/2000000
- 2.4 Mbps: http://10.5.5.9/gp/gpControl/setting/62/2400000
Размер окна потоковой передачи:
Размер кадра с высотой 720 протестированы на Hero 5 Black.
- Default: http://10.5.5.9/gp/gpControl/setting/64/0
- 240: http://10.5.5.9/gp/gpControl/setting/64/1
- 240, 3:4: http://10.5.5.9/gp/gpControl/setting/64/2
- 240 1:2: http://10.5.5.9/gp/gpControl/setting/64/3
- 480: http://10.5.5.9/gp/gpControl/setting/64/4
- 480 3:4: http://10.5.5.9/gp/gpControl/setting/64/5
- 480 1:2: http://10.5.5.9/gp/gpControl/setting/64/6
- 720 (1280×720) : http://10.5.5.9/gp/gpControl/setting/64/7
- 720 3:4 (960×720) http://10.5.5.9/gp/gpControl/setting/64/8
- 720 1:2 (640×720) http://10.5.5.9/gp/gpControl/setting/64/9
На 7ке не работает?
Все работает, пробуйте
Подскажите как получать скриншоты через http в максимальном качестве?