Skip to content

Instantly share code, notes, and snippets.

@fichek

fichek/Readme.md Secret

Last active August 27, 2023 23:12
Show Gist options
  • Save fichek/c69326dba7e5a9dfb6ecc2c9e4e93224 to your computer and use it in GitHub Desktop.
Save fichek/c69326dba7e5a9dfb6ecc2c9e4e93224 to your computer and use it in GitHub Desktop.
How to get voc-poc DJI FPV Video Out working on macOS or Linux

I'll try to make this as easy to follow for total non-nerds as possible, if you get any errors or get stuck at any step, ask for help in Discord.

  1. Install brew from https://brew.sh (copy and paste the command you see there on the website into Terminal and follow the prompts for password and hit enter when asked, it's perfectly safe) brew is a package manager that will make installing all the requirements super easy.
  2. (If you see a message about brew not being in your path, run the commands it tells you to.)
  3. once that is done, run brew install node - this will use brew to automatically install node and all its dependencies
  4. once that is done, run brew install ffmpeg - this will use brew to automatically install ffmpeg, ffplay, and all their dependencies
  5. cd to a folder where you want to download the voc-poc scripts, eg. cd Desktop or whatever
  6. run git clone https://github.com/fpv-wtf/voc-poc.git to get all the scripts from the original git repository - on macOS at this point you might get asked to install git, if so do that (but brew might have installed it if you didn't have it, not sure as I had it already)
  7. run cd voc-poc to move into the folder we just downloaded as we will run those scripts there
  8. at this point you can just follow the official readme or:
  9. run npm install to configure the scripts and all their dependencies
  10. plug in your goggles via USB, turn on your quad and either arm it or in the goggle settings under device turn off auto temp control (idea is to start the stream while the Air Unit/Vista isn't in low power mode, this is required for Smart Controller too)
  11. run node index.js -o | ffplay -i - -fast -flags2 fast -fflags nobuffer -flags low_delay -strict experimental -vf "setpts=N/60/TB" -framedrop -sync ext -probesize 32 -analyzeduration 0

...

A ffplay window should appear with your stream! 🥳 ... If not, try restarting quad and goggles.

Next time you wanna use it, if you turned auto temp control off, you can power up the quad ffter running the long command, that seems to improve latency. I'm getting about 80ms average like this, we've seen as low as 65-ish.

@johnynice
Copy link

Running npm install I get:
voc-poc % npm install
npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm ERR! code 1
npm ERR! path /Users/joaocoutinho/Desktop/Stream/voc-poc/node_modules/usb
npm ERR! command failed
npm ERR! command sh -c prebuild-install --runtime napi --target 4 --verbose || node-gyp rebuild
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/core.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/descriptor.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/hotplug.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/io.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/strerror.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/sync.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/os/poll_posix.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/os/threads_posix.o
npm ERR! CC(target) Release/obj.target/libusb/libusb/libusb/os/darwin_usb.o
npm ERR! LIBTOOL-STATIC Release/usb.a
npm ERR! CXX(target) Release/obj.target/usb_bindings/src/node_usb.o
npm ERR! prebuild-install info begin Prebuild-install version 5.3.6
npm ERR! prebuild-install info install installing standalone, skipping download.
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.4.0
npm ERR! gyp info using node@20.4.0 | darwin | arm64
npm ERR! gyp info find Python using Python version 3.8.9 found at "/Library/Developer/CommandLineTools/usr/bin/python3"

@VitoPulverenti
Copy link

same :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment