RSSAmplifier

Blog

~rom1v/blog

blog.rom1v.comRSS feed ↗10 posts

Latest posts

Scrcpy 2.0, with audio

I am thrilled to announce the release of scrcpy 2.0 . Now, you can mirror (and record) your Android 11+ devices in real-time with audio forwarded to your computer! This new version also includes an option to select the video and audio codecs. The device screen can now be encoded in H.265, or even AV1 if your device supports AV1 encoding (though this is unlikely). The application is free and open…

Audio forwarding on Android 10

Audio forwarding is one of the most requested features in scrcpy (see issue #14 ). Last year, I published a small experiment ( USBaudio ) to forward audio over USB, using the AOA2 protocol. Unfortunately, this Android feature was unreliable, and has been deprecated in Android 8. Here is a new tool I developed to play the device audio output on the computer, using the Playback Capture API…

Introducing USBaudio

Forwarding audio from Android devices In order to support audio forwarding in scrcpy , I first implemented an experimentation on a separate branch (see issue #14 ). But it was too hacky and fragile to be merged (and it does not work on all platforms). So I decided to write a separate tool: USBaudio . It works on Linux with PulseAudio . How to use USBaudio First, you need to build it (follow the…

A new core playlist for VLC 4

The core playlist in VLC was started a long time ago . Since then, it has grown to handle too many different things, to the point it became a kind of god object . In practice, the playlist was also controlling playback (start, stop, change volume…), configuring audio and video outputs, storing media detected by discovery … For VLC 4 , we wanted a new playlist API, containing a simple list of items…

Implementing tile encoding in rav1e

During the last few months at Videolabs , I added support for tile encoding in rav1e (a Rust AV1 Encoder). What is this? AV1 is an open and royalty-free video coding format, concurrent with HEVC (H.265). Rav1e is an encoder written in Rust , developed by Mozilla / Xiph . As such, it takes an input video and encodes it to produce a valid AV1 bitstream. Tile encoding Tile encoding consists in…

Introducing scrcpy

I developed an application to display and control Android devices connected on USB. It does not require any root access. It works on GNU/Linux, Windows and Mac OS. It focuses on: lightness (native, displays only the device screen) performance (30~60fps) quality (1920×1080 or above) low latency ( 70~100ms 35~70ms ) low startup time (~1 second to display the first image) non-intrusiveness (nothing…

Gnirehtet rewritten in Rust

Several months ago, I introduced Gnirehtet , a reverse tethering tool for Android I wrote in Java. Since then, I rewrote it in Rust . And it’s also open source! Download it , plug an Android device, and execute: ./gnirehtet run (adb must be installed) Why Rust? Learning Rust Difficulties Encapsulation Observer Mutable data sharing Compiler limitations Safety pitfalls Leakpocalypse Undefined…

Gnirehtet réécrit en Rust

Il y a quelques mois, j’ai présenté Gnirehtet , un outil de reverse tethering pour Android que j’ai écrit en Java. Depuis, je l’ai réécrit en Rust . Et il est également open source ! Téléchargez-le , branchez un téléphone ou une tablette Android, et exécutez : ./gnirehtet run (adb doit être installé) Pourquoi Rust? Apprendre Rust Difficultés Encapsulation Observateur Partage de données mutables…

Fusionner deux dépôts git

Ce billet explique comment fusionner un dépôt git (avec son historique) dans un sous-répertoire d’un autre dépôt git . Cas d’usage Mon projet principal se trouve dans un dépôt main . J’ai démarré dans un autre dépôt un projet other , que je souhaite finalement intégrer dans un sous-répertoire sub/ du projet principal, en conservant son historique. Après cette fusion, je ne garderai que le dépôt…

Introducing gnirehtet

I spent the last few weeks at Genymobile developing a tool providing reverse tethering for Android, so that devices may use the internet connection of the computer on which they are connected via USB, without requiring any root access (neither on the device nor on the computer). It works on GNU/Linux , Windows and Mac OS . We decided to open source it under the name gnirehtet . Yeah, that’s a…