Long-distance video streaming

I’ve done a fork (but it is more like complete rewrite) of wifibroadcast which is compatible with qgroundcontrol video format and provides much less latency due to direct RTP encapsulation to IEEE80211 frames. It supports RX diversity with any number of RX cards. Also you can stream (one-way) mavlink packets to ground station. https://github.com/svpcom/wifibroadcast

2 Likes

This is awesome! Can we make the Mavlink connection unidirectional?

Yes, you can use wifibroadcast as unidirection transport for udp-encapsulated mavlink messages

Excellent.

Would you be able to make a PR to PX4 Devguide on how to set up a reference implementation? Let me know in case you need an help.

I’ve found WiFi broadcast to be very nice, and your fork seems to have made it much easier to integrate.

@mhkabir i’ve created a pull request. https://github.com/PX4/Devguide/pull/84

Thanks, good stuff. Did this 10 years ago :slight_smile:
You should also look at using multiple slices and investigating Fragmentation-Unit A (FU-A) mode in RFC3984. Another optimization is to get your slices to fit in one MSDU

Definitely will check this out, and thank you for the great work.

Hey @jfd, did you ever experiment with this?

I’d love to hear more about the optimizations that you referred to.

1 Like

@mhkabir @jfd I’ve wrote a new major release with support of video streaming and bidirectional mavlink telemetry with RX and TX diversity. I.e. you can use array of directed antennas on ground station and WFB will automatically select TX antenna according to RX RSSI. Setup HOWTO. Feedback are welcome :slight_smile:

Hi Vasily, thank you very much! I’ve been following the thread (watching on github). I’m working on a new Wi-Fi Bridge replacement for ESP8266 using Broadcom Wi-FI and will take a look at this next. Have you looked at a 2x2 radio like BCM4356 with an ePA (1Watt output power)?

If it use 80211 softmac and supports packet injection (via radiotap) it should work. But need to test because packet injection can be disabled in firmware.

That’s great, I will be picking this up in the new year. Have you see the Yuneec E90 Gimball? This gimbal has 20MP camera, uses an Ambarella H2 Module, and it does use standard RTP/RTSP for streaming … I’d like to adapt this as a source device but we’ll have to make the Wi-Fi work in monitor mode. On the downstream side, I have BCM4356 2x2 with ePA (1W) which would be great for range with a Pagoda antenna.

I didn’t find any API specs on their site. It seems that is only compatible with Yuneec copters.

That’s true. The default firmware supports a MAVLINK over serial with camera control. The H2 module has Ethernet and Wi-Fi and brings up a 5Ghz softap for TX to the ground. Take a look at this, about all I have for now

https://developer.yuneec.com/documentation/introduction/custom-payload

It would be good if there was an embedded Linux SDK and then we could just make our own kernel image.

@hamishwillee Hi, could you review and apply https://github.com/PX4/Devguide/pull/723 ?