Archive for December, 2009

iPhone vs Android platforms & apps

I’ve been playing with my HTC Hero the last few days. I installed a lot of popular Android apps (about 80 of them), and tried to see how they feel compared to my iPhone’s.

Basically, the iPhone apps are more mature/stable. Developers seem to be spending less time testing for their Android ports, and more for their iPhone’s. However, on the other hand, Android has more free apps than the iPhone. If you can have a bit of patience with them, you will save money. Basically, it depends if your time is worth money or not.


The iPhone is not perfect though. Here are my three major gripes with the iPhone. All these features are supported on Android (#3 is done via 3rd party apps):

1. Background apps. From Twitter, to IM and VoIP apps (that are simply impractical to use with just PUSH), background apps are a must have. If anything, create an Android-like security system and services’ server that keeps control of misbehaving services.

2. Let the device operate as a USB-based device so we can drop files in there. Then, make some sort of file access/management accessible to third party apps. For example, what if I want to just copy a few random-format VGA videos on my iPhone, and there’s an app like VLC that can read these files while the iPhone video viewer can’t? I don’t want to transcode to h.264/AAC, I just want to play them as is via an app that can understand these formats. And that’s just a multimedia example. The same kind of example can exist for office or other documents too. And recently, I became aware that the first real video editor for the iPhone, ReelDirector, has no way to add music to the videos because Apple doesn’t offer access to the iPod music, or to a storage facility like the one suggested above.

3. AVRCP/PAN/LAP/Obex Bluetooth support. I need to be able to send a picture, or other kind of whatever-format file (see #4) to someone else’s phone (not DRM’ed files of course). Even dumbphones have support for these Bluetooth profiles.

4. Some kinds of apps are missing exactly because of #1 and #2. If Apple listens and fixes these two issues, we will see *useful* utilities and complex apps entering the AppStore, as opposed to yet another game or unit converter.

5. Just under the search box, I’d like to see a list-view with various app/phone notifications. Something between Android’s and Palm Pre’s, but with Apple’s touch. Again, for that we’d need #1, since PUSH won’t cut it in all cases. Originally I thought that a widget system for that empty space under the search box would be nice, but I think that a well-designed notification list view, makes more sense in that limited space.


On the other hand, the Android ecosystem is missing more stuff:

1. Not as good of overall usability/ergonomics as in the iPhone. Apps are more stable, beautiful, and with more features on the iPhone. On Android they feel like patchworks. Especially games, which is a shock!

2. I’d like a media player that makes sense and is a joy to use. The current media player sucks goats compared to the iPod Touch usability. Oh well, at least it can read all album art (Nokia phones, and even Sandisk players can’t).

3. AppleTV/iTunes Remote (TunesRemote on Android doesn’t work with my AppleTV, which is our main audio server in our home — we don’t use our AppleTV for video).

4. Skype via Wifi. Currently, Android’s Skype only works via GSM on the Android, because it was released around a time where not all VoIP-assisting APIs were completed on Android. Version 1.6 of Android does have the necessary APIs completed, but and I don’t see Skype getting fixed, since the company even removed their Android web page! Here’s hope they will wake up and add WiFi support.

5. Google Voice currently doesn’t work via VoIP/WiFi. Therefore, it’s completely useless for me right now since I need it to call my mom in Greece, and I only have a PayAsYouGo AT&T account.

6. No video editor is possible for Android (even if it doesn’t have iPhone’s file-system limitations) because not all needed media APIs exist (AFAIK). Plus, I’ve yet to see a single Android phone that shoots better video than the iPhone 3Gs anyway.

7. While there’s a task killer available, I want to also control apps to not automatically load on the background when the phone starts. Surely, that’s something that the app itself should offer me in its settings as a preference, however, very few implement it. So I’m now faced with apps that eat my RAM and I don’t want to be loaded (but I do want installed, e.g. Google Finance). That extra utility should be Google’s job, as it was Microsoft’s when they wrote msconfig.exe to carry out the function. If Apple adds the ability of background apps, they should implement this too (along a task killer).


And some things that both platforms need to implement. Who knew! They have something in common!

1. Get their shitz together with audio/video on multi-IM/VoIP. How more should we wait for A/V chats via WiFi? It’s 2010 already God damn it. I’m not even asking overloading 3G towers, I just want it via WiFi!

2. Adobe Flash 10.1. With GPU acceleration please. Android’s getting it according to Adobe, but until I see Vimeo working with it at 30 fps (VGA, non-HD videos), it has to stay in this list.

3. UPnP support. Both as a server and a client.

Editing Kodak digicam video files on a PC

I have a bunch of Kodak HD digicams lying around (they cost just $100-$150 these days), but I don’t really use them because they are so slow to edit. You see, on the PC side, editors use the Quicktime engine to decode the MPEG4-SP format. On the Mac side these files are re-encoded during import to a friendlier format, so it’s not a big deal there, but on the PC side it is, since Quicktime for the PC is very slow. Not only that, but under Sony Vegas, using these MPEG4-SP MOV files via the Quicktime decoder is crashy.

So obviously, I needed a way to losslessly re-wrap (NOT re-encode) these MOV files to AVI, in order to force a more sane decoder to take over the decoding job under Vegas. So today I found a way to make these 720/30p HD files REAL TIME on my 5 year old Pentium4 3Ghz PC under Sony Vegas. From 2 fps previewing speed when using Quicktime under Vegas, to full 30 fps when using ffdshow instead! And it’s mighty stable! Here’s how:


Main method

1. Download ffdshow. Use the latest CLSid version for your operating system. Here’s the current 32bit version (as of this writing), if you are lost and you don’t know which one to download. Install it.

2. Download and install SUPER (use the RO server, the US one is corrupted). Load the app, right click, and set “Output file management” to any newly created folder (this will be the folder that will hold all your AVI files). For example, e.g. C:\myvideos\holidays\france\

3. Create another folder in that folder, call it “originals” (so now it becomes something like C:\myvideos\holidays\france\originals\). Copy the Kodak .mov files from the SD card to that “originals” folder.

4. Navigate to the “originals” folder with Windows Explorer, and drag-n-drop all the MOV files to SUPER. Set up SUPER exactly as shown below in pink, and press “encode active files”.

Click for a larger view

Update: If the created MJPEG AVI files are reported as 600 fps by your player/editor, then use MEncoder instead of FFmpeg in the above screenshot.

Now, transcoding will commence. Transcoding to AVI will be really fast, since we only re-encode the audio (Vegas can’t decode the original ulaw audio format without Quicktime you see, and these AVI files don’t use Quicktime). Also, this conversion is completely LOSSLESS, you won’t lose quality at all by doing so.

5. Load Sony Vegas (or any other PC video editor that uses the “Video for Windows” technology), and load the newly-created AVI files in it (not the MOV files). Load the Vegas “project properties” dialog, and manually set resolution to 1280×720, frame rate at 29.97, field order to “none/progressive”, quality to “best”, de-interlacing to “none”. In the “audio” tab, change the audio resampling & stretching to “best”. Leave any other fields found in that dialog as is. Click “ok”.

6. Now edit (previewing is going to be stable and faaaaast when using the default preview/auto mode). When you are done with editing, you MUST select ALL clips in the timeline (either by using the “edit mode”, or by using the SHIFT key), and right click on them, select “switches” and then “disable resample”. This is very improtant because otherwise you will get a “ghost” image out of these clips (because these stupid Kodak cameras don’t record in a fixed frame rate). When done, export for PC viewing or Youtube/Vimeo/PS3/XBoX360 like this under Vegas. For other video editors look here.


Alternative method

Windows 7 has problems with SUPER. Also, some people just hate it, or don’t trust it. So, here’s the command line edition of the same workflow shown above. It requires some small knowledge of MS-DOS usage.

1. Follow #1 from the first method.

2. Download the latest build of ffmpeg. Create a folder called “ffmpeg” somewhere, and unzip the contents in there.

3. Inside that same ffmpeg folder, create another folder, called “videos”.

4. Copy the Kodak .mov files from the SD card on the ffmpeg/videos/ folder.

5. Open a DOS prompt, navigate to the ffmpeg/video/ folder, and run the following command for each and every one of your MOV files:
..\bin\ffmpeg.exe -i kodak_001.mov -f avi -vcodec copy -acodec pcm_s16le kodak_001.avi

Substitute the “kodak_001” file names with your video file names. E.g. the 100_132.mov will become 100_132.avi, etc. You will have to manually do that for every one of your files, unless you are proficient with MS-DOS scripting/programming, in which case you can automate it using “batch” files. If you don’t know what I’m talking about scripting here, just do the job manually. Here’s a batch file you can run though, save it on notepad, name it thejob.bat, save it on the ffmpeg/bin/ folder, and drag .mov MJPEG files into its icon (script by Michael Burgess):

echo off
echo hello
IF EXIST %1 GOTO THEJOB

ECHO No Job
PAUSE
GOTO JOBDONE

:THEJOB
ffmpeg.exe -i %1 -f avi -vcodec copy -acodec pcm_s16le %1.COPY.avi

IF ERRORLEVEL 1 ECHO. Error 1
IF NOT ERRORLEVEL 1 ECHO. No Error
PAUSE

:JOBDONE
EXIT

Transcoding to AVI will be really fast, since we only re-encode the audio (Vegas can’t decode the original ulaw audio format without Quicktime you see, and these AVI files don’t use Quicktime). Also, this conversion is completely LOSSLESS, you won’t lose quality at all by doing so.

6. After the conversion to AVI is done for all files, move all these newly-created AVI files in another location, e.g. where you usually store your video projects (e.g. C:\myvideos\holidays\france\ whatever).

7. Follow #5 and #6 from the first method. Read the important notes. You’re done.


Tutorial for MJPEG MOV files

IF you’re having speed/stability issues with HD MJPEG MOV digicams too (e.g. Panasonic LX3, Nikon D90, and many other digicams), you can apply this tutorial too to create AVI MJPEG streams. This would result in previewing these files twice faster. You need to do two changes to the tutorials above:

1. After installing ffdshow in step #1, load ffdshow’s “VfW Configuration” panel, click the “Decoders” tab, click “Codecs”, scroll down to find the MJPEG format, and change it from “disabled” to “libavcodec”. Screenshot.

2. When you set the frame rate on your Vegas or other PC video editor’s project properties dialog (just before you edit), you must figure out what is the source’s footage frame rate. Vegas tells you what the original is if you select it in the Project Media tab, and read its status bar. It will say something like “30.000 fps”, or “24.000 fps”. Type in the frame-rate field that number. Set up the rest of the project properties as shown in the tutorials above. At the very end of editing, after you “disable resample”, export at 29.97 fps if the original reported frame rate was 30, or at 23.976 if the original was 24. Leave at 25 if it the original was 25. This will ensure sane, standard-compliant, frame rates.

Everything else is the same as in the tutorials above.


Important notes

1. While editing, the gamma will be different than the original Kodak MOV files. This is normal. Quicktime has a known problem with MPEG4 footage, rendering them with a lower gamma value (looking washed-out). What you will get with AVI and Vegas, is how the camera REALLY recorded the footage — which is a good thing.

2. This method only offers speed and stability under PC editors for MPEG4-SP & MJPEG files, not for MPEG4-AVC/h.264 files. Please note that the Kodak digirecorders, like the Zi6/Zi8/Zx1 are h.264-based, not MPEG4-SP based like their actual Kodak HD digicams. Therefore, for these Z-series digirecorders you’ll need something like Cineform NeoSCENE (costs $99) to go around the editing problem.

3. SUPER might trigger your anti-virus. This doesn’t mean it has a virus or that it’s malware, it’s just that it doesn’t always play nice with some anti-virus apps.

4. Vegas Platinum 10 has a bug with the ffdshow MJPEG decoder, so you might see slowness when that version is used. Previous versions of Vegas don’t have the bug. I don’t know about newer, or Vegas Pro 10.

“Accidental Love Song” by Andy Kong

After just 4 hours of overall shooting time, but 2 months of various setbacks, the music video I shot for local Bay Area artist Andy Kong, is finally up. Andy is a great singer/songwriter, so if you like the song, go ahead and check his music on iTunes!

Video was shot with a bare HV20 (just an ND filter was attached to it) in 24p, and in 60i for the slow-mo scenes. There are a few shots that I’d like them to be different, but overall I’m reasonably happy with the result. HD version here.

Dreaming of a labyrinth

I had a 3-hour nap yesterday, and during that time I had the weirdest dream ever (although I’m known to have adventurous dreams). I saw some gangs that some of its members were hideous monsters, I saw my mom telling me that the little girl that’s part of one of these gangs was my twin sister that I never knew I had. While trying to free her (with… Adam Lambert’s help), I got chased and I had to swim away and fight the bad guys like a ninja.

By the time I got out of the water, the gang boss, none other than Samuel L. Jackson, took away my mother and my sister and he wouldn’t tell me where they were. Myself and some ex-gang members… tortured him, to no avail. Then, another monster comes in, and told us that Jackson has a secret place in his basement, a labyrinth. To get in and out of there without getting lost, you need to be accompanied by a kid that was a twin (and that was the reason he had kidnapped my supposed twin sister as a baby). I decided to go in.

It was an amazing place, and for the first time in a long time I did not realize that I was dreaming. It felt real. Some of it had places where you fall “up”, some of it had floors that would break apart and re-arrange itself, some of it had corridors with doors that monsters would come out and bite you, and the rest had a lot of stolen art, technology and what not. Even Adam Lambert was stashed there, and couldn’t find the exit. I asked him if he saw my mom and sister, he led me to them, and with my excitement for finding them, I woke up. I guess we’ll never know if I was able to lead these trapped people out.

He Hallo

Wow, just wow! A mixture of real footage and motion design, inspired by the look of Dutch ’70s postcards and class photos. Shot with a Canon HV20. HD version here.