Having recently had a chance to get hacky with Google Glass, I put together an app that I have been wanting for quite a while. For now it is called Circular Buffer. Essentially it is a 15 to 20 circular frame buffer (Glass camera preview frames). Taping on the “Save” button writes out the frames to an MP4 with H.264 video using JavaCV giving you a video file with the last 15 or 20 seconds #throughglass. (Right now the video files do not have sound and are stored on the “sdcard” of the device. That means that you have to connect via USB and use the “adb” tool to download the files.)
This is a “native” Android app rather than the approved of method of writing Glass apps using the Mirror API. In order to use it, you have to either launch it through the Android developer tools (adb) or install “launchy” (https://github.com/kaze0/launchy).
Gargoyles represent the embarrassing side of the Central Intelligence Corporation. Instead of using laptops, they wear their computers on their bodies, broken up into separate modules that hang on the waist, on the back, on the headset. They serve as human surveillance devices, recording everything that happens around them. Nothing looks stupider; these getups are the modern-day equivalent of the slide-rule scabbard or the calculator pouch on the belt, marking the user as belonging to a class that is at once above and far below human society.
For the last little or should I say, long while I have been working on wrangling a solution for live streaming from Android that is both decent quality and extensible. For those of you interested, the litter in my GitHub account documents various previous attempts.
As far as I can tell, most folks that are streaming live video from Android are relying upon the video captured by the MediaRecorder and underlying classes and doing a bit of trickery with the file either while it sent to the server or on the server for distribution. This is fine but it doesn’t give hooks into the actual video frames before they are encoded and sent over the network.
Recently, I came across Samuel Audet’s amazing open source JavaCV project. In that project Samuel is wrapping FFMPEG’s underlying libraries (avcodec, avformat, and so on) using his equally amazing JavaCPP project to expose their functionality to any Java application.
Finally, after a few weeks of experimentation and little (actually a LOT) of help from Samuel himself, I have something working!
The app, Obscura Cam is the outcome of the first phase of our
Secure Smart Cam project to create smart phone camera software which allows for greater privacy and security in the capturing and sharing of media.