Comments (3)
Not yet - and I can totally understand how you'd have trouble reading the Rust, the Baichuan parser is really nasty - I don't like how the Nom parser works in practice.
At a high level the core packet format is:
- header
- body
- extension data
The header is pretty easy. Magic bytes, message ID number, message length, and a couple of fields that aren't really used as far as I can tell.
Almost all messages are "modern" messages which have XML bodies, obfuscated by the Charlie Scrambler. There is one top-level XML tag per message ID number; you just have to know these. In Neolink, the message ID number is how messages are routed from the socket to the appropriate thread - which then match
es against the deserialized structure.
The extension data is, depending on the message, possibly absent, binary data (video data stream chunked into 40KB packets), or more obfuscated XML. The presence of extension data is stateful, activated by the binaryData
XML message. Overall, this is highly annoying.
If you want to get a feel for it, the best thing to do would be to drop into Wireshark and read the opening salvo of messages with the provided dissector. It's not perfect - especially when it hits video - but you can read the XML.
Let me ask you this: would you be more interested in protocol documents, or a C-compatible API for the existing Rust library that you could call from your new app?
from neolink.
To the last question: both, in the form of code that's self explanitory :P
from neolink.
For those that come across this issue: I just thought I would say that we now have some documentation here. It is not perfect but its a start. If you want to add to the docs about the protocol please do make a PR :)
from neolink.
Related Issues (20)
- QUESTION - Service addon stop
- question to Reolink cameras
- Neolink without gstreamer for PIR only HOT 15
- Can't see the RTSP stream. (Swann DVR8-5000) HOT 10
- Download HOT 5
- support for long passwords (or special characters)
- g_object_new_is_valid_property: property 'name' for type 'GstRtpL16Pay' cannot be set twice HOT 7
- Deserialization error / Media Deserialization error HOT 1
- Question: How does neolink affect battery consumption? HOT 1
- installing on HAS Yellow? HOT 1
- It runs but throws a panic error... HOT 1
- All set up, but RTSP can't connect HOT 5
- Failed to translate camera address - Reolink ARGUS 3 Pro HOT 4
- Unmaintained HOT 9
- Adding a motion sensor HOT 1
- Can't connect to Reolink Argus Track
- neolink crashes in GStreamer-RTSP-Server
- Unable to auth to Argus Eco Ultra HOT 2
- Can't connect to Argus Pro 3 - HELP! Battery powered camera HOT 1
- Changing camera HTTP / port settings. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from neolink.