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.
GalleryGrid.js on GitHub
will follow soon is available here. It is available on GitHub (sources and distributables) and through npm and Bower. Read the docs, check out the demo or see it in production use in the picture list on LAIS.Foto.
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, and in fact, people are already starting to use it.
AudioAlign is a tool that I started developing in 2010 for my master’s thesis (and has been actively developed 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 could still 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 like an audio processing engine and audio fingerprinting and time warping algorithms. Both Aurio and AudioAlign are now available as AGPL licensed open source software on GitHub.
The ITEC MediaPlayer library for Android has been updated to 1.4.0. This new version mainly improves DASH support, but also has a few bugs fixed, small changes and additions to the MediaPlayer/VideoView API, and improved error/exception reporting.
The DASH MPD parser now covers a lot more use cases, including some of the DASH-IF test vectors for which an evaluation protocol is available in the sources. Experimental playback of dynamic content (live streams) is also possible now, but MPD updates are not supported yet. An important feature that is still missing is support of single-segment streams, which is why many of the test vectors still fail. Anyway, the API of the current version should remain stable for some time while all the missing functionality can be implemented under the hood, if interest calls for it. The demo app has also been updated with the new version of the library and a few usability improvements.
The library is available on GitHub, with updated documentation and sources. Release builds can be obtained from the JCenter repository for easy usage in Android projects through Gradle and Maven. The demo app is online on the Play Store.
ITEC MediaPlayer on GitHub
I am currently trying to solve licensing issues on an unreleased project I am working on and want to get rid of all dependencies under the GPL, one of which is the libsamplerate resampling library, which I have been using for a few years through a managed .NET wrapper. It is just a small wrapper library but because it proved to be working pretty stable and I also could not find any other nice wrapper as of today, I moved it to a separate project called SRC.NET and published it on GitHub. SRC.NET has been written for stream processing and comes with both x86 and x64 precompiled libsamplerate Windows libraries. Usage is very simple, a small demo application is included in the repository.
SRC.NET Managed LibSampleRate Wrapper on GitHub
Decrypting Canon Camcorder Firmware Updates
Today, if you are a serious 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 this wasn’t the case an I had a Canon HF10 camcorder, one of the first to record Full-HD AVCHD video to an SD card. It had a reasonable performance for its price, but sooner than later I was missing some important video features like zebra patterns and manual gain.
Local Audio Broadcast is a simple application that captures the local audio playback in Windows and streams it to a UPnP renderer on the network.
I have originally written it to stream Spotify music playback from my desktop to my HTPC running XBMC, therefore it can also embed the currently playing track title from Spotify into the stream. It is not limited to Spotify though, but can stream any audio playback.
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.