Skip to content
View peaBerberian's full-sized avatar

Block or report peaBerberian

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
peaBerberian/README.md

Hi there πŸ‘‹, I'm Paul Berberian

I'm a software developer working on libraries for the web and the lead developer of the RxPlayer project at Canal+, an adaptive streaming engine built for media streaming companies.

My current languages of choice are: TypeScript, Javascript, Rust and Go.

I also created multiple other open-source projects, including:

  • 🐝 Wasp-hls: A WebAssembly-based, in-worker, HLS media player.
    Ambitious personal project using the latest API and technologies (MSE-In-Worker, WebAssembly) to construct an optimal adaptive media player: not blocked by main thread interactions, memory-efficient, performant, low-latency.

  • πŸ•ΈοΈ Paul's Web Desktop: Code linked to my homepage.
    Check the page out! It emulates a featureful desktop environment and is written with no external dependency.

  • πŸ“Ή AISOBMFFWVDFBUTFAII: An online inspector for MP4 files (demo page).
    Written initially as a personal project to improve my understanding of the format, it is now actually used at my work by different teams to easily inspect those files. It relies on another library of mine doing the parsing, isobmff-inspector.

  • 🚒 paul-envs: A multi-container manager designed for CLI-only development workflows, written in Go.
    I rely on this when working on some large projects with a lot of fast-moving dependencies.

  • πŸ“ˆ RxPaired: A lightweight remote debugger.
    I wrote it to simplify debugging sessions observing the RxPlayer's behavior. It works on any device with a very minimal performance imprint and is used daily by several teams at Canal+.

  • πŸ‘“ MSESpy and EMESpy, spying libraries used for reverse engineering what MSE and EME web APIs any webpage is calling, when, and with which parameters.
    Those tools were written to reverse engineer how other streaming actors' own players were behaving in different situations, in turn to improve our own. My team and I still use it for that same usage.

  • πŸ“„ str-html: A simple JS UI tool generating HTMLElement by relying on tagged template literals.
    I wrote this one as a nice spot for when whole UI frameworks like React were overkill yet using "vanilla" HTML API became unreadable.

  • πŸ“– README: A simple (in a KISS way) documentation generator taking as input fully CommonMark-compatible Markdown files.

    The goal is to keep the original documentation files readability in a text-editor as well as on Github's interface, without any specific modification on them, while still providing a richer web version with minimal efforts.

  • πŸ•Ή keyboard9: A virtual keyboard allowing for much faster typing speeds than the usual implementation.
    The idea was to allow for fast text input when debugging devices with a remote controls or joypad interface (game consoles, set-top boxes, smart TVs...).

  • πŸ–ΌοΈ BIF-Inspector: A simple tool to parse and inspect BIF files, the archive file format used by most streaming actors for preview thumbnails (e.g. to preview video content before a seek in a media).
    This was initially written to help teams working with us to produce spec-compliant BIF files.

  • ⌨️ RKeyboard: A functional proof of concept to provide a new way to handle complex keyboard and/or remote control interactions.
    It was written while creating the initial skeleton of the next Canal+ front-end application for its set-top boxes.

  • 🐭 morora.js: A sister project to RKeyboard, morora.js is a small library which handle spatial navigation for devices without a mouse.
    This project was written like RKeyboard when working on proof of concepts for a new set-top-box's user interface, where no pointer/mouse is available. It allowed experimentations on which strategy to adopt for page navigation: closest selectable element first? What if the next elements are not aligned? What if multiple elements are at the same distance? etc.

  • πŸ”‘ passgen: A very simple online client-side password generator.

  • πŸ‡ gif-renderer.rs: A gif decoder written in Rust.
    I wrote it to continue improving my Rust skills, it is finished and functional and is able to efficiently display all (87a and 89a) GIF files.

Pinned Loading

  1. canalplus/rx-player canalplus/rx-player Public

    DASH/Smooth HTML5 Video Player

    TypeScript 930 136

  2. wasp-hls wasp-hls Public

    WebAssembly-based (Rust) & in-worker HLS Media Player for the web

    TypeScript 184 5

  3. AISOBMFFWVDFBUTFAII AISOBMFFWVDFBUTFAII Public

    MP4 / ISOBMFF Box Inspector

    JavaScript 12 2

  4. EMESpy.js EMESpy.js Public

    Report every EME API (for media DRMs) a webpage calls

    JavaScript 7 4

  5. isobmff-inspector isobmff-inspector Public

    Simple ISOBMFF parser, compatible with JavaScript and Node.JS

    JavaScript 5 1

  6. peaberberian.github.io peaberberian.github.io Public

    A web desktop and my personal homepage

    JavaScript 3