Archive for February, 2012

I started a personal project last summer called AVR Remote. It is an Adobe AIR based application that works on iOS/Android and Desktop for Mac and PC. It allows, via WiFi or wired Ethernet full control over the vast array of features of Onkyo and Integra AVR’s (Audio Video Receivers, like you would find in a home theater) from their late 2010 models onwards. You might consider it similar to a Logitech Harmony or really nice remote control, but with a deeper feature set and over WiFi, so no line of site issues. I haven’t had the time to dedicate to it like I had originally wanted to, in order to flesh it out further and add all the various features, but the core communications and basics come together pretty quickly. So, I planned to open source it last fall and was going to release it at Adobe MAX, but I just never got around to cleaning it up and removing some dependencies that would have made it problematic to open source. I finally took a few minutes and got everything straightened out last week and released under the MIT license here on Github:
https://github.com/rmhall/AVR-Remote Please feel free to fork it and log issues or contribute. The README in the repo explains a bit more about the background, and current status. I also included in the repo a small video of the iOS version running, as well as a link to a larger video on my site that demonstrates it functioning with my Onkyo AVR and home theater.

The model I happen to have is an Onkyo HT-RC270 and I really like it. I have owned Onkyo receivers and equipment before, and pretty much all their receivers built after middle to late 2010 all have ethernet capabilities built in. There were only some very basic apps out for a while when they first arrived, but quickly third parties put out some great apps, especially for Apple iOS devices. Onkyo put out there own for iOS, the first version wasn’t so great, but the new version 2 available for iOs and Android, is much nicer. My favorite, is a third party app oRemote, the iPad version in particular is really nice. The availability of these apps also put a little damper on my enthusiasm to complete the project, but I got it to a point where it does all the basics I needed. One of my goals was to have something my wife could use that was very simple and just allowed her to switch all the various input sources and volume controls – the basic essentials, something easy enough that even the kids could navigate. Compared to the remote that it comes with, the app is very simple, but accomplished that goal, and is stubbed out to handle all the other features with some further development. I also feel there is value in a dedicated desktop app – all the apps I have seen focus on mobile apps. However, I work from home, and use it all the time, and using it right from my desktop is really handy. Since it’s all done over WiFi and the Onkyo devices support more than one Zone of active speakers, finishing up a desktop version still has some appeal and usefulness.

I started this project just before Adobe released Native Extensions for Adobe AIR and so I had planned to use that for a portion of the project as well. Adobe AIR for mobile does not currently support UDP sockets, nor does it support broadcast addresses over UDP or TCP, on either mobile or desktop. That is unfortunate as those two features would allow for UPnP style device detection automatically. Right now the app requires a manual input of the IP address, but a Native Extension for AIR to handle the UDP sockets and broadcast address functionality would give it the full capabilities to do the UPnP style auto-discovery of the device. I think this would be a valuable Native Extension that could be used for other projects as well. Something I may spend some more time on – and if anyone is interested in collaborating, feel free to drop me a note.

Share
PRINT THIS ENTRY
Comments Off on Onkyo and Integra AVR Remote Control App for iOS Android/Desktop via Adobe AIR – Free Source Code

jPlayer Fork with RTMP Support

Posted on February 3, 2012 by:
in Flash
Flash

There has been a lot of change in the interactive landscape the last couple of years. Like many of my colleagues and developers in general, I have been branching out further, working with a lot of other technologies, tools and frameworks on my own and for client work. This past year I’ve done quite a bit more JavaScript and jQuery related projects. Many of them involving augmentation and integration of Flash for HTML5 related fallback, during what has proved to be a real transitional period for Flash and HTML5 delivered media. In late 2011, I helped out one of my clients, by customizing and forking the popular jPlayer project:  http://www.jplayer.org/  jPlayer is a popular JavaScript library used to deliver audio and video with a focus on HTML5 delivery and fallback to Flash, or vice versa. It leverages jQuery extensively, hence the name. Pandora’s recent relaunch of their site, is one high profile example of its usage, and there are many more in the Google Groups Discussion List for jPlayer.  According to BuiltWith, there are currently at least 3,740 sites using the library actively and it it ranks as one of the more popular libraries for the top million sites as well.

It’s is really rather useful, and very approachable even for someone unfamiliar with jQuery or just basic knowledge of JavaScript. One of the nicer aspects of it, is that even when using Flash for delivery, the entire UI and controls are all still done in HTML and CSS and controlled via JavaScript and communicate with Flash via ExternalInterface. This makes it very flexible in terms of layout, skinning and branding. This happened to match perfectly with what my client was trying to do, so it was a great fit. Unfortunately it only supported HTTP progressive delivery of content in Flash and there was no support for Adobe’s RTMP for for streaming audio and video sources. So that is what my fork encompasses, adding support for RTMP audio and video sources. The fork I put together can be found here: http://github.com/rmhall/jplayer/  and includes some of the more expected things from RTMP, such as multi port/protocol negotiation, re-use of connections, and some other standard stuff. No multi-bitrate support or advanced QoS metrics, but that is on the drawing board/Todo list. I actually got word just the other day, that at some point soon my additions and changes will be incorporated into the main repository. That will nice as others may poke and prod at it to improve it beyond what I have done. If you are interested in learning more, read the README and RTMP_NOTES files located in my fork. I also welcome any improvements, suggestions, etc. – feel free to open any issues and make note right in the github repo.

If you would like to see the end results of the changes in action for my client, check out Daytrotter – http://www.daytrotter.com/

I’ve been working with several other audio and video frameworks the past few months, and plan to write up some of my experiences about them all and possibly do a bit of comparison of each. With the current state of HTML5 support for audio and video being still fairly fragmented across browsers, and so many different libraries and approaches for tacking this, I’ve found that depending on the needs of the project, some libraries and approaches have real benefits over others. I’ve also been working on some custom/hybris solutions and hope to be able to share some of that work here soon also.

Share
PRINT THIS ENTRY
Comments Off on jPlayer Fork with RTMP Support