Showing Posts From

Open Source

ITEC MediaPlayer Library for Android released

The ITEC MediaPlayer library is a lightweight VideoView/MediaPlayer replacement for Android’s default components, enhancing it with exact frame seek, playback speed adjustment, GLES shader effects, picture zoom/pan by gestures, and DASH support. The source code and a more detailed description is now available on GitHub, its accompanying demo showcase app on the Google Play Store.

Decrypting Canon Camcorder Firmware Updates

Decrypting Canon Camcorder Firmware Updates

Today, if you are an amateur who wants to record high quality videos on a budget, you can get a nice DSLR for less than 1000€ which comes with every feature you’ll ever need. If not, you can easily extend the functionality with software add-ons like Magic Lantern. Back in 2008, when I owned a Canon HF10 camcorder (one of the first to record Full-HD AVCHD video to an SD card), this wasn’t the case. It had a reasonable performance for its price, but sooner than later I was missing important video features like zebra patterns and manual gain. I was wondering whether these features could be unlocked with hacks, and the first step was decrypting the firmware.

Introducing Aurio and AudioAlign

Introducing Aurio and AudioAlign

AudioAlign is a tool that I started developing in 2010 for my master’s thesis (and have been actively developing since then), with the goal to create a software for the automatic synchronization of audio and video recordings. Although I never quite reached the point of a fully automatic synchronization system, it showed promising results compared to the few similar commercial applications available on the market, and continues to be a helpful tool for my research purposes. I gave up on the plan to commercialize it due to patenting problems I didn’t know how to deal with, but instead decided on open sourcing it, so others can make use of it and hopefully even help me improve it.

Aurio is a library extracted from AudioAlign, providing the underlying core audio processing functionality, including audio fingerprinting and time warping algorithms. Both Aurio and AudioAlign are now available on GitHub under the AGPL license.

ITEC MediaPlayer reaching v3.0, getting production-ready and a new name: MediaPlayer-Extended

Since the previous post from about a year ago, the ITEC MediaPlayer for Android has evolved to its second major version, receiving a lot of bugfixes, a rewritten playback core with huge performance improvements, and the ability to playback audio-only sources. Its new name now bumps it to version 3.0, and it is reaching a point where I feel confident that it can be used in production. In fact, people are already starting to use it.

Publishing a JavaScript Library - for Dummies

Publishing a JavaScript library can be overwhelming these days. You want to reach a crowd as broad as possible, but there are dozens of different approaches existing and choices to be made. This article is a quick summary of current best practices, which are developing with npm, and publishing via npm and Bower package managers as well as a universal standalone distributable file. To follow, you need to be familiar with npm.

Native immersive 360° VR video playback on Android with Spectaculum

Native immersive 360° VR video playback on Android with Spectaculum

Playback of immersive 360° video on Android is usually done in a WebView with an HTML5 video player. This tutorial demonstrates how to display 360° video in a native view widget to save the overhead of a whole browser stack. This is done by using the versatile Spectaculum view widget for video rendering and the popular ExoPlayer for video decoding. Both of these libraries are open source under the Apache 2.0 license and available on GitHub and the JCenter repository.

Aurio adds support for realtime live fingerprinting and cross-plattform cloud deployments with .NET Core 2.0

Aurio adds support for realtime live fingerprinting and cross-plattform cloud deployments with .NET Core 2.0

A collaboration with eyecandylab, a company developing products for augmenting TV programs, recently gave me the opportunity to implement great new features into Aurio. The most recent version released today extends the architecture to support processing of real-time audio streams with infinite lengths, which means that live streams can now be fingerprinted on the fly with minimal latency. Additionally, the Aurio core library has been ported to .NET Standard 2.0 and will run with the .NET Core 2.0 framework on Windows, Linux and MacOS, enabling building microservices in containerized environments like Docker.

Visual smart home notifications with WLED

Visual smart home notifications with WLED

A smart home sometimes needs to notify its users of certain events or states. Instead of installing dedicated notification devices, why not use the smart lights which are present in most smart homes anyway? This turned out to be much more difficult than it sounds. However, I found that WLED, a great firmware for LED light strip controllers, offers an interface almost predestined to implement visual notification effects, and so I wrote and published a Node-RED node which does exactly that. Visual notification effects, simple to use, without side effects. It’s open source and now available on GitHub, npm, and the Node-RED library. Watch the demo video and read on for more details.