Giter VIP home page Giter VIP logo

Comments (9)

svpcom avatar svpcom commented on July 26, 2024

https://github.com/svpcom/wifibroadcast/wiki

Q: What is a difference from original wifibroadcast?

A: Original version of wifibroadcast use a byte-stream as input and splits it to packets of fixed size (1024 by default). If radio packet was lost and this is not corrected by FEC you'll got a hole at random (unexpected) place of stream. This is especially bad if data protocol is not resistent to (was not desired for) such random erasures. So i've rewrite it to use UDP as data source and pack one source UDP packet into one radio packet. Radio packets now have variable size depends on payload size. This is reduces a video latency a lot.

There are no difference in HW usage (but actual range depends what wifi speed ans MCS scheme you will set), so you will get the same range as with EzWFB

from wfb-ng.

myeabhishek avatar myeabhishek commented on July 26, 2024

How about the video quality? Which one will provide with better image quality?

from wfb-ng.

svpcom avatar svpcom commented on July 26, 2024

Video quality depends on you video codec, not on WFB. With default settings WFB use MCS-1 HT40+ SGI modulation. It supports maximum bandwidth 30Mbit/s. It is sufficient for H264 720p 60fps or 1080p 30fps. But bitrate depends from video codec quality. For example different HW H264 codecs will provide different bitrate for the same video.

from wfb-ng.

svpcom avatar svpcom commented on July 26, 2024

So you need to select modulation for you need - you distance, bitrate, interference, wifi band, etc.

from wfb-ng.

myeabhishek avatar myeabhishek commented on July 26, 2024

Hello Svpcom,
Thankyou for answering my queries. I have one more question. If I want AES encryption with your implementation, how can I go about it?

from wfb-ng.

svpcom avatar svpcom commented on July 26, 2024

https://github.com/svpcom/wifibroadcast/wiki/Encryption

Wifibroadcast encrypts data stream using libsodium.

When TX starts, it generates new session key, encrypts it using public key authenticated encryption (cryptobox) and announce it every SESSION_KEY_ANNOUNCE_MSEC (default 1s). Data packets encrypted by crypto_aead_chacha20poly1305_encrypt using session key and packet index as nonce.

WFB doesn't use AES. It use elliptic crypto from libsodium: chacha20 + poly1305

from wfb-ng.

myeabhishek avatar myeabhishek commented on July 26, 2024

I am aware of the encryption that you have added. I have gone through your wiki completely.

If I want to change this to AES, how can I go about it? I have seen that libsodium supports AES 256.

from wfb-ng.

svpcom avatar svpcom commented on July 26, 2024

https://download.libsodium.org/doc/secret-key_cryptography/aead/aes-256-gcm
Replace crypto_aead_chacha20poly1305* with crypto_aead_aes256gcm* (functions and variable types)
But aes is slow compared to chacha20poly1305

from wfb-ng.

svpcom avatar svpcom commented on July 26, 2024

Be aware - it will not work on ARM:

Limitations

The current implementation of this construction is hardware-accelerated and requires the Intel SSSE3 extensions, as well as the aesni and pclmul instructions.

Intel Westmere processors (introduced in 2010) and newer meet the requirements.

There are no plans to support non hardware-accelerated implementations of AES-GCM. If portability is a concern, use ChaCha20-Poly1305 instead.

from wfb-ng.

Related Issues (20)

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.