Git Product home page Git Product logo

silicon_research's Introduction

OpenIPC logo

Simple FPV

Telegram

goke_venc

EN

Here is an example of getting video from a GK7205V300 board using only HiMPP low level API.

This example is configured for and tested on an IP camera using IMX335 image sensor. If your module has another sensor, you need to adjust board configuration profile in the source code. This example includes profiles for most popular sensors.

Video output format is H.264 over UDP with NAL fragmentation like in RTP, although NAL prefixes are omitted. Keep in mind that this is not a valid RTP stream! To receive and display video stream extra coding is needed. The NAL defragmentation algorithm is described in udp_depay.c.

How to build

Before starting, please make sure that you have a proper toolchain for you camera (grab cortex_a7_thumb2-gcc8.4.0-musl-4_9-xxxxxxxx.tgz from OpenIPC releases). You will also need a GK7205V300 camera module flashed with OpenIPC firmware.

Compile the code into a binary.

#### on desktop
cmake -Bbuild-gk7205v300-release -DTARGET_PLATFORM=gk7205v300 -DTARGET_BUILD=Release \
  -DTARGET_PLATFORM_TOOLCHAIN_GCC_PATH=/path/to/toolchain/bin
cmake --build build-gk7205v300-release

Upload the compiled binary onto your camera.

# on desktop
scp build-gk7205v300-release/Release/bin/vec yourcameraip:/tmp/

Run it there but don't forget to stop majestic (pre-packaged OpenIPC streamer) first.

# on camera
cd /tmp
killall majestic
./venc

Known bugs

You might be needing to add a symlink from /dev/venc to /dev/ven on your IP camera in order to make it work.

# on camera
ln -s /dev/venc /dev/ven

RU

Пример того, как запустить GK7205V300, используя только низкоуровневый API HiMPP.

Этот пример настроен и протестирован на IP-камере с IMX335 на борту. Если вы хотите использовать другой сенсор, вам следует изменить профили конфигурации платы в исходном коде. Пример содержит профили для наиболее популярных сенсоров.

Формат выходного видео - h264 по UDP с фрагментацией NAL по аналогии с RTP, но не является корректным RTP и не содержит NAL префиксы. Для приема и отображения видеопотока требуется дополнительная утилита. Алгоритм дефрагментации NAL описан в udp_depay.c.

Как собрать

Перед началом убедитесь, что у вас есть набор инструментов для вашей камеры (собранный при помощи OpenIPC).

Также вам потребуется соответствующая камера с установленной прошивкой OpenIPC.

cmake -Bbuild-gk7205v300-release -DTARGET_PLATFORM=gk7205v300 -DTARGET_BUILD=Release \
  -DTARGET_PLATFORM_TOOLCHAIN_GCC_PATH={PATH_TO}/openipc/output/host/bin
cmake --build build-gk7205v300-release

Перед запуском примера на камере необходимо остановить стандартный для прошивок OpenIPC стример - majestic.

Если через некоторе время после его остановки камера уходит в перезагрузку - отключите WDT в конфигурационном файле majestic.

Известные ошибки

Пример может не запускаться на камере из-за несоответветствия имени устройства в драйвере и в HiMPP.

Лечится созданием символьной ссылки /dev/venc -> /dev/ven на вашей IP-камере.

Ground Station on NVR

RoadMap

  • Взять vdec
  • Взять библиотеку mavlink
  • Взять cairo, научить работать с framebuffer (копипаста из интернета).
  • Можно взять что-то другое, например имеющийся wifibc телеметрию и отучить её от opengl
  • Всё это поженить в новом проекте, создать пакет для OpenIPC, его развивать.

Links

silicon_research's People

Contributors

ihardrock avatar themactep avatar zigfisher avatar flyrouter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.