lvala / rtpeeker Goto Github PK
View Code? Open in Web Editor NEWRTP streams analysis and visualization tool
License: MIT License
RTP streams analysis and visualization tool
License: MIT License
Design and create the page/tag that shows all of the packets with info about them. The page should allow for sorting, filtering etc. Test the performance with large amounts of packets.
Setup front-end -- back-end communication (sending packets to clients, allow to request client to parse a packet differently (i.e. packet was not parsed, but I know it's RTP, so parse it as RTP and send again). Send all of the previous packets to newly joined client. Create common
module and appropriate serializable data structures.
Create basic project structure. It should consist of frontend
(egui
template) and backend
(basic HTTP server). The structure should allow for packaging as a binary crate on crates.io in the future.
Research and implement basic RTP/RTCP recognition algorithm. The initial version should target RTP/RTCP over UDP recognition.
Implement packet sniffing functionality on the back-end. Packets should be parsed (L2, L3, L4 without auto-recognition/treat everything as RTP) and stored. Consider used data structures to accommodate for packets analysis.
Implement the command line interface. The interface should allow to choose address/interface and port, chosen .pcap
file and the interface from which packets are captured. It also should allow to list network interaces to make it easier to choose the desired one.
Add new window to GUI with a table that lists RTP packets with corresponding data.
Setup app packaging (i.e. via crates.io
binary). It should be convenient to download and run (e.g. the WASM assets should be automatically compiled).
Add functionality to group RTP packets into streams and calculate some metrics (jitter, packet loss etc.). Add window to GUI that lists the streams and corresponding data.
Setup CI (using Github Actions). It should check the formatting, linting, build and test the project (consider that the code is split to more than one directory).
Create the plot window. Plot window should allow to see a graph that represents arriving RTP/RTCP packets in time.
Create the main WASM/egui app template. The template should contain general elements (e.g. information about connected backend, a ligth/dark mode switch, these are just examples). The template should allow to easily insert buttons/other way to enable pages/tabs/windows (with e.g. tables with packets or plots). This tasks also requires to implement the packet fetching on the client side, as new packets must cause re-render.
This issue will be updated with minor problems regarding user experience that should be eventually fixed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.