Thursday, November 27, 2014

Developing for Windows Phone - a story


Around three years ago I bought one of the first models of WP7 phones to appear - HTC Mozart 7 - which was very similar to the Android-based Nexus One. Wanted to see what's like to be an early adopter and early player in the app marketplace.

I managed to get a free app registered on the app store: Fast Offline Translator EN-DE.
http://www.windowsphone.com/en-us/store/app/fast-translator/ccf24cce-d48e-e011-986b-78e7d1fa76f8
I did it mostly for myself as I knew very little German. Not much has changed since.



This is the story of doing the development, deployment and update for that app.


Wednesday, November 26, 2014

Adventures in video blogging

I started preparing for doing short YouTube videos - lighting, cameras, display setup, sound. In this post I will deal with the software editing setup and a bit of hardware.

Editing requirements:
- synchronize videos from multiple cameras - DSLR, point & shoot, camcorder, mobile phones, capture
- single video in a split-screen setup showing multiple streams
- must be able to zoom in on a camera
- subtitles and image overlays
- speed boring portions of the video up
- switch between microphones, adjust levels and compression

The baseline video: http://youtu.be/KTEGRSdxxxg - what I expect to get out of the programs.

Windows Movie Maker

Everyone's favorite:  unfortunately it's not multi-track and awkward to use. Most of the free / really cheap editing suites fall in this category.

Adobe Premiere

Too expensive, but the last time I used it (several years ago) was pretty ok.

Kdenlive

Really good, supports most of the stuff above. Unfortunately it's Linux only so I was running it inside a VM. Interface is pretty good, spent around 2-5 hours for the learning phase and another 2 for the editing.
Rendering took really long, around 3-4 hours.
Speeding up sections of the track proved to be a bit challenging.
I haven't spent time figuring out how to edit the audio.
Requires twiddling with a few parameters (preview quality, caching)

Blender

Hailed as the next big thing coming from the OSS movement it has everything including the kitchen sink. Which is also where the problem is.
With no training you'll likely end up with 100 windows open. That is, if you can get past the cube and you remember to match all your video frame rates (it can be worked around though).
After 2 hours of struggling with it with no manual I went to study about 10 hours of YouTube tutorials. Spent another 2-3 hours editing but it still felt really wrong.
There is no support for even basic sound editing - like stretching the video and sound together to match a duration.
Requires a lot of tweaking and twiddling (preview, input format, output format, windows).
Rendering time was around 2 hours for 1h40m, so pretty quick, but the resulting video had a few artifacts.

Sony Vegas / Movie Studio

I used a Vegas trial but I expect Movie Studio (which retails for ~30 EUR) to behave the same way.
It was really quick to get into, makes the right decisions for you. Spent less than one hour researching how to do what I wanted to do and around 2 hours for the total editing time.
The editing time also included identifying and speeding up portions of the video, adding captions and other minor tweaks that I did not do in the other programs. So, overall, I was twice as productive.

There were several other programs that I've used but dumped them quickly because they were either too restricted or too difficult to use. I used these list for a selection, looking for the ones which were updated lately and had some lifetime: http://en.wikipedia.org/wiki/Comparison_of_video_editing_software and http://en.wikipedia.org/wiki/List_of_video_editing_software

While I continue to support open source my time is more valuable to me, especially if I'm going to do this multiple times.

Hardware

The video linked above is more than one year old and was not shot with the gear below

Nikon D7000
Hacked firmware to record more than 20 minutes. Using an Android phone or tablet with USB OTG cable and DSLRDashboard for setting up and checking the result.
Canon SX230HS
Connected via mini-HDMI to a display, has optical stabilization and pretty good macro capabilities.
Generic video-out camera
These are used for reversing systems for example. Can be set up outside, for timelapse videos or just for checking what's happening behind me. Connected to a small car TV screen.
Lapel microphones
I have two of these but haven't decided which one to use. The will connect to the DSLR.
2x 160W CCFL studio lights
They stand on height adjustable tripods which can also take umbrellas: diffusers or reflectors.
3m x 6m green-screen
The green screen is mounted on an adjustable stand - 3m length, up to 2.4m tall - and can be replaced with other fabrics, like white or black cloth.

There's still the issue of high background noise (hopefully the mics will solve that) and addressing an invisible audience in a non-native language. So perhaps it's better to practice the speech beforehand or dubbing over.
It's also best practice to set manual white balance and exposure compensation and have a neutral-colored table surface.