Archive for the ‘Software’ Category (feed)

Kindle’s the best — but not why you think it would be

Today I received the Amazon Kindle 2 in the mail. I bought it refurbished, for just $110 (US Edition, there’s also a Global Edition). The Kindle is along the iPad among the best book reading devices. Truth is, I don’t read much, since I can’t focus (apparently a problem that has become worse in the last few years).

So for me, the Kindle has another major feature that it’s indispensable — if you’re willing to put up with some of its shortcomings. That feature is FREE, unlimited 3G Internet access, FOR LIFE.

Unless Amazon removes the feature somehow, the Kindle 2 comes with a web browser (under the “experimental” menu). Kindle’s Netfront web browser is definitely not as good as the likes of Webkit on the various modern smartphones, but it’s still good enough, and fully operational, for basic web browsing and emailing.

Personally, when I’m using my phones via WiFi, I only browse to very few web sites, the ones that form the skeleton of my internet experience. They’re mostly general news, tech news, and emailing web sites. So by using their mobile pages, I was able to get the same experience on the Kindle as I’d get from my smartphones. I don’t feel I’m missing out here, because even when using my smartphones via WiFi, I still prefer mobile pages, for browsing speed, and lesser bandwidth consumption.

So these are the sites I generally use when on the go, and apparently they work great on the Kindle:
– Mobile.osnews.com
– i.engadget.com
– m.gizmodo.com
– m.digg.com
– m.cnn.com
– m.io9.com
– slashdot.org/palm
– m.facebook.com
– mobile.twitter.com
– https://mail.google.com/mail/x/ (mobile version)
– https://mail.google.com/mail/h/ (lite desktop version)
– This blog

My 1-year pay-as-you-go phone service with my cellular provider is about to expire soon, so I was pondering if I should get an iPhone, or a Samsung Galaxy S, along a 2 year contract with “unlimited” data. However, that would cost me thousands of dollars, when I can just go for another $100 pay-as-you-go service for 1 more year (I don’t call a lot via my cell — I still have $50 left after a whole year), and then use the Kindle as my “data” device. For the rest of my sporadic calls, I use either Google Voice when at home, or my landline directly, or Skype when calling my mom.

Would it be a better experience if I had a smartphone and/or an iPad instead? The answer is yes. However, since my online needs are not major and I don’t do a lot of calls, it makes no sense to pay for things that I don’t really need just because “they look better on a colorful screen”.

The user experience I get from the Kindle reminds me of my old monochrome Palm PDA. I was using the offline browser Avantgo with it, or my infrared-based modem (the PDA would create a dial-in networking connection via infrared — these were the days). However, the Kindle is still better: the browser is better than what we had back then, it has a bigger screen, a hardware keyboard, and a real 3G connection. And if I had bought the Global Edition of the Kindle, I’d have Internet almost everywhere in Europe too, for free.

So overall, it kicks ass. Internet on the go, free of charge. Sure I have to put up with a gray screen, but it works.

Intermediate Usage of the Matrox MPEG-2 I-Frame HD Codec

UPDATE: A different, simpler way to convert to Matrox’s AVI.

UPDATE 2: Make sure you don’t have both Matrox AVI and a Cineform decoder installed on the same PC, at the same time. When you do that, you’ll get red/black frames and crashes with recent Vegas versions. So only have installed one or the other, depending on your project.

I’ve been suggesting either Cineform or Avid DNxHD to transcode into for your dSLR/AVCHD slow footage, but Matrox just released this bug-fixed version of their intermediate codec, that is pretty good too. It’s free, and faster than DNxHD, but not as fast as the $100 Cineform. DNxHD works on a Mac too though. So if you’re PC-only, and you have no money for Cineform, this might be your best option.

1. Install the Matrox codecs from here.

2. Install the latest 32bit Avisynth from here.

3. Install the latest DirectShowSource plugin, by manually placing it on Avisynth’s “plugins” folder (usually C:\Program Files\Avisynth 2.5\plugins\, or Program Files (x86)).

4. Install the latest full version of AC3Filter.

5. Install the MatroskaSplitter (aka Haali Media Splitter).

6. Install the 32bit version of VirtualDub. Do not use the 64bit version.

7. Install the latest ffdshow-tryouts version. Make sure that avisynth and virtualdub plugins are checked, and h.264 decoding is enabled too (it will ask you all that during installation). If you already have CoreAVC installed, you might either want to skip this step, or you can still install it (if you can’t get sound to work) but disable h.264 decoding.

8. Open Notepad and copy/paste the following in it:

@echo off
cls
set root=C:\Users\Eugenia\VideoFootageFolder
set input=%root%
for %%I in ("*.MOV") do @echo DirectShowSource("%input%\%%~nI.MOV") >> "%%~nI.avs"

In the code above, you will have to edit it, and change the video footage folder name, so it points to your own folder with footage. Also, I’d suggest that your folder path has no spaces, and no non-english characters. If your camera does not record in MOV format, change the two instances of the word MOV, with the suffix of your format (e.g. M2TS, MTS, MP4). Save that script file with the name of avs.bat on the same folder as your footage.

9. Open an MS-DOS Command Prompt, and navigate to your footage folder (it obviously requires that you know how to navigate folders using the command prompt, it’s basic MS-DOS usage). Once there, run the script by simply invoking its name: avs.bat

10. For every .mov file in your footage folder, an equivalent .avs file is now created. E.g. 001.MOV now has a very small 001.AVS companion file. Creation of these .avs files will be almost instantaneous.

11. Open VirtualDub (it’s important you follow the follow the steps in the order presented, or you might hit a bitrate-related bug). Select File, Queue Batch Operation, Batch Wizard. Click the litte […] button, and select your footage folder, then click OK. Then, drag-n-drop in that Batch Wizard dialog all the created .avs files (make sure to only drag the .avs files, not the .mov ones). Click Filter Output Names, and type: “avs” (without the quotes) for the “Search for:” input box, and “avi” (without the quotes) on the “Replace with:” box. click Ok. Then click Add to Queue, and then select: Re-Save as AVI. Then, click OK.

12. Click Video, Full Processing Mode.

13. Click Video again, then Compression. From the long list, scroll down, and select the “Matrox MPEG-2 I-Frame HD” codec. Click Configure. In it, select the data rate you want (I’d suggest about 150 MB/sec), and the right frame rate (same frame rate you shot your footage at). Click OK, and OK again.

14. Click File, Job Control. All the .avs files you drag-n-dropped on step #10 will be listed there. Click “Start” to start encoding them. This will take a while.

15. When everything is done, close down VirtualDub, and load on your Vegas/Premiere/MovieMakerHD video editor the newly created .avi files (not the MOV or the AVS files, but the AVI ones). Edit as usual.

Note 1: If you shot some 720/60p or 1080/30p and you want to slow-motion that to 23.976 fps (e.g. music videos do that a lot), then you can do that during this transcoding (no need to do it through your video editor later). Select “Direct Stream Copy” instead of “Full Processing Mode” on step #12. And then click Video again, Frame Rate, and change the frame rate to 23.976 fps (type it). If you shot in 720/50p, type 25.00 in there instead. If you don’t care about the audio (since it won’t sound properly when the video is slowed-down) you can disable its transcoding by clicking in the main menu: Audio, No Audio. Then, continue with step 13 and beyond.

Note 2: Also, if you’re working with AVCHD or HDV footage instead of progressive dSLR footage, VirtualDub can de-interlace for you, or even remove pulldown, during this transcoding process. You just need to load the right internal filters: If you only want to deinterlace 50i/60i footage, just click Video, Filters, De-interlace, Add, and select “interpolate, yadif” from the list. The continue with step #13. If you want to remove pulldown instead (e.g. for PF24 footage), you can modify the MS-DOS script file above to also add TIVTC commands in the generated avisynth .avs scripts.

Note 3: If Vegas thinks that your progressive footage is interlaced, then use this trick to make it think otherwise.

Starting up with a dSLR and Sony Vegas

What a huge success these Canon dSRLs are these days! Everyone with a little interest in filmmaking now hurries to acquire one of these cams too. The problem is that the h.264 format these dSLRs (and other HD digicams and digirecorders) are recording is not exactly “friendly” on the PC side. Here’s a guide on how to use that h.264 dSLR/digicam format properly with a PC editor.

1. Install the software

I will be using Sony Vegas Platinum in this article, because it’s the only consumer video editor that supports 24p editing — a key feature that these dSLRs have is 24p recording. Platinum is in my opinion the most powerful consumer video editor, and costs ~$75. Yes, I could suggest a professional editor here, but honestly, Platinum does most of what you’ll ever need to do, for a fraction of the price.

Please note that Vegas Platinum 10+, and Vegas Pro 10+ do offer better support for these h.264 files, so you might not need to use this tutorial at all if your editing is stable/fast-enough. But it’s definitely a must-read tutorial if you use an older version.

2. Shoot the footage

There are three things you should setup in your camera: frame rate, exposure, picture style. If you’re shooting a music video or film go for 24p/25p, if you’re shooting sports go for 50/60p, and if you’re shooting daily random stuff go for 25p/30p. Either use manual exposure to setup your shots, but if you’re not very accustomed on how to do that, just use automatic exposure, but make sure you actually “lock it” (so the brightness doesn’t jump in the footage every time your scene changes). Finally, go for a flatter picture style, or if you prefer more punch, use the built-in “Neutral” style. Definitely don’t go for the over-the-top “Standard” default style though, it’s color-ungradeable. Looks too video-y.

If you’re using a plain HD digicam from Canon, also ease-up the colors, and always lock exposure (read the manual on how to do that).

When done shooting, create a folder on your computer that will host all the project files. Copy the MOV files in there from your flash card.

3. Transcode your footage

PC editors just don’t deal fast-enough with the Canon MOV format. Some editors do better than others, but if you want 24p, you’ll have to stick with Vegas Platinum — and in that case you’ll have to transcode to an easier-to-decode “intermediate” visually-lossless format. I would suggest Cineform NeoSCENE ($100), but if money is an issue, you can go with the freeware AVID DNxHD, or Matrox MPEG-2 i-Frame HD codecs. Here is a comparison between the three:
– Cineform is much faster to encode during transcoding,
– Cineform is much faster to decode/playback,
– Cineform hits some bugs on Vegas Pro 9 or later,
– AVID DNxHD has slightly better quality (not noticeable usually),
– AVID DNxHD is free,
– AVID DNxHD doesn’t support 1080/30p frame rate, or 1080/50p/60p,
– Matrox I-Frame is free,
– Matrox I-Frame is in between DNxHD and Cineform in regards to overall speed,
– Matrox I-Frame supports up to 300 mbps bitrate, so quality is ok too,
– Matrox I-Frame method is a bit more difficult to setup and batch-encode your files into,
– Cineform and DNxHD work on a Mac too, Matrox doesn’t.

You might also hear others suggesting the Huffyuv or Lagarith intermediate formats. I’d suggest against them, since they’re slow as molasses, even on the fastest PCs. Others, might suggest you go with the Proxy method, but again I’d suggest against it, because when you do the final switch to the original MOV files, you will get more frequent crashes than usual during exporting (especially on more complex projects).

So, once you’ve made your decision between the three intermediate formats, here’s how to use each:

  3a. Cineform NeoSCENE
Download and install NeoSCENE (use the trial version first, to make sure it works on your system, and if it does, uninstall properly before installing the purchased version). Load the utility, load its preferences, and make sure you’re using the AVI format, the path to the folder you created on step #2, “High” quality, and the “maintain source format” option. Then, load the MOV files to the utility, and start the conversion. This will create AVIs on the same folder, typically at double the filesize (it’s normal for intermediate formats to create large filesizes). Conversion will be rather fast. Please note that Vegas Pro 9 has a bug with Cineform, and sometimes it creates red/blank frames in the timeline, so be aware of it. Pro 7/8 and Platinum 8/9 don’t have this problem. Finally, if you’re not using a Pro 9 or later released version, you will also need to rename the cfhd.dll file to cfhd.dll-OLD (found in your Vegas installation directory), in order to force Vegas to use the newer codec that gets installed with NeoSCENE (by default, older Vegas versions use an ancient decoder).

  3b. AVID DNxHD
Here’s a step-by-step tutorial on how to install the codec (need to be done only once), then batch-convert dSLR footage into AVID DNxHD. Just make sure you select the right frame rates/resolutions in the dialogs, depending on how you actually shot. Also, create these DNxHD MOV files into a sub-folder in the main project folder, because otherwise you wouldn’t know which MOV files are what format.

  3c. Matrox MPEG-2 I-Frame HD
Here’s a quick rundown on how to setup your machine in order to batch-encode your files into this codec. It requires some understanding of what you’re doing, and some moderate PC usage though. Update: A different, simpler way to convert to Matrox’s AVI. This makes the Matrox AVI solution not as time-consuming anymore.

NOTE: Make sure you don’t have both Matrox AVI and a Cineform decoder installed on the same PC, at the same time. When you do that, you’ll get red/black frames and crashes with recent Vegas versions. So only have installed one or the other, depending on your project.

4. Load footage into Vegas

Load Vegas. After the initial screens go away, load the Cineform or Matrox AVIs, or the DNxHD MOVs, into Vegas’ “project media” tab (you can drag-n-drop them). IF you are using Cineform, you must do a one-time check. You must check if Vegas recognizes these AVIs as progressive or as interlaced. Because the AVI format does not have a field for field order, it’s up to you to instruct Vegas what kind of files these are. So, follow this tip on how to do that. When you do that, come back to read the rest here.

5. Setup Project Properties

In Vegas, it’s very important to have the right project settings before you start editing. From the main menu select “Project Properties”, and a new dialog will pop up. In there, click the right outmost icon called “Match Media”, the one that looks like a yellow folder. From there, select one of the files you will be editing with (Cineform/Matrox AVI or DNxHD MOV), and click “open”. Vegas will now automatically fill up most of the project settings for you, after analyzing the video file you picked. After it does that, you need to do a few changes manually to that dialog: For the de-interlacing option select “none”, and for the Quality option select “Best”. You can save a new template with these settings, so each time you start a new project with the same kind of resolution/frame-rate, you can just pick it from the list! So, after your project settings are set, click “Ok”, and edit as you would normally do. Save often. Here is my Vegas getting-started guide.

6. Ensure visual quality

After you have edited, select ALL clips in the timeline (e.g. by using the SHIFT key), right click, select “Switches”, “Disable Resample”. By disabling resample we ensure no ghosted final image (especially if you used slow-motion). I have more such cool tips here, that you should read.

7. Export

Export your final for YouTube/Vimeo/PS3/AppleTV/XBOX360 from this tutorial, by just using its step 3 (or step 4 if you have access to the SONY AVC encoder via Platinum version 9+). That exporting tutorial is for 720p, but it’s easily converted to 1080p: just change the resolution to 1920×1080, and the bitrate to 12 mbps. Everything else remains the same as in the tutorial.

If you’re after DVDs, then use the right MPEG2 widescreen template on the “RENDER AS” dialog. This will export video only. For audio, use the AC3 template. Then, bring both files into DVD Architect (companion application to Vegas Platinum), and DVDA will put the two back together.

If you’re after Blu-Ray or “AVCHD disks”, just use the option from the main menu. If you get crashes with the Sony AVC encoder when burning HD, change the burning encoder setting to “Main Concept”.

A simple Twitter widget for Android

Developers often over-develop. A grand example for this are the various twitter widgets available presently for Android. They take a lot of space, and they show new tweets, plus they let you update your status. While this might sound to you like a good minimum functionality being offered, it’s in fact over the top.

Except the fact that they take lots of space on the desktop (usually 1/2 of the allowed desktop), showing new tweets by having to press the “next/previous” buttons to scroll in them, and then pressing two-three more clicks to update the status, it makes the whole thing *redundant*. It only takes a SINGLE click (via bookmark desktop link) to load the brand new (and very functional) mobile page of Twitter, which has full functionality, fits more posts per page, and it provides an input box right on the top of the page.

The HTC Hero widget is a bit better than the rest of the Android Twitter widgets since it allows for flicking through the tweets instead of previous/next buttons (they wrote their own code obviously, since Android doesn’t have flicking widget API support), but it still doesn’t offer @ mentions or DM info, it’s very slow to refresh for some reason after I request it to (it takes up to 1 minute here!), it doesn’t use the whole desktop full screen (so there’s lost real screen estate, limiting the amount of posts you can read on a single view), and besides, it’s only available on HTC Sense phones only.

HTC Hero’s huge, slow, and cumbersome Twitter widget:

Screenshot by MobilitySite

To make the long story short, all these people who have developed these complicated and convoluted twitter (and facebook) widgets, are on the wrong usability-wise. I’m sure consumers THINK that this is the functionality they want on their desktop, but in reality, it makes their workflow more difficult than it has to be. Android allows to put bookmark links on the desktop, so all they have to do is add the link to the Twitter’s mobile page. This is a way-faster and more efficient workflow than using twitter via a widget!

Make no mistake, I do want a Twitter widget, but this has to act ONLY as a (1×1 icon sized) notification widget, not as a full-featured client. Sure, Android already has a drop-down notification system, but a widget is more visual, and requires fewer clicks/flicks to get to. Here’s a rough idea of what I’m envisioning:

I can pay $100 (via Paypal) to any Android developer who can implement this (which is of course a symbolic amount rather than covering the true cost). It shouldn’t be ultra-difficult to develop it, it’s definitely much simpler than the rest of the Twitter widgets out there. Here are some pointers of how I wish this to be implemented:

1. Make the widget vector-based (or whatever scalable format Android supports). Basically, design the background graphic, the font size, and the font-spacing in a way that scales well from a 2.8″ 320×240 screen to a 4″+ 1280×720 screen.

2. Clicking the widget loads a pre-selected third party client. The settings of the widget should be a separate app appearing in the main Applications list. The UI for the prefs should look like the main settings of Android (various options on a black background). A few other widget developers that I know have taken this approach too rather than loading the prefs from within the widget itself (especially since we’re dealing with a 1×1-sized widget).

3. The prefs panel should include the following options one way or another:
a. Username/Pass login & logout buttons (secure login please)
b. Update interval
– 15 minutes
– 30 minutes
– 1 hour (default, less than that has battery life impact)
– 2 hours
– 8 hours
– 24 hours
c. Preferred client (to load on click)
– mobile.twitter.com web site (default)
– Twidroid or Twidroid PRO (if installed)
– Seesmic (if installed)
– TwitterRide (if installed)
– Twit2go (if installed)
– Twoid (if installed)
– Twitta (if installed)
– m.twitter.com web site (older, WAP site)
d. Refresh (forces a refresh, restarts the update countdown clock)
e. Reset tweets to 0 (in case we already read the tweets elsewhere)
f. About info

4. When you click the widget to load the preferred client, the widget’s timeline/mentions/DMs go down to 0, and the refresh countdown clock restarts.

5. If there’s a Twitter API that tells you when was the last time Twitter was accessed with any client, take that into account when downloading & counting the widget’s new tweets.

6. The widget should be free to download via Market worldwide, and open source (same license as Android itself). The widget should not ask for more system permissions than it actually needs to operate. Host it at Google’s code depot, and make an effort to get it included by default on Android by following their code guidelines (it’s a long shot, but you never know).

7. Keep it lean. You don’t need to download the actual messages for example, only get the unread numbers. Test well for memory leaks, crashes, CPU/battery probs, or breakage with new Android/Twitter API versions. Be responsive to bug reports. No new functionality is needed, except maybe adding new twitter clients in the supported list. Only do that for major & popular apps, so the app might not need updating more than once or twice a year overall after it’s deemed “stable” — which is a pretty good deal maintenance-wise.

So, any takers? Please email me if you’re interested, before you start working on it.

Update: Android developer Stu King will start working on it Jan 1st. Thanks!

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.

Kodak digicam HD editing with PiTiVi

One thing that bugs me with the 720/30p MPEG4-SP format found on Kodak digicams (not on their digirecorders, as these use h.264), is that it’s very slow to edit on Windows. Most Windows video editors use the Quicktime engine to decode that MOV format, and Quicktime on Windows just plain sucks ostrich balls. I mean, sure, if you have a very modern, very fast PC, you’ll get some acceptable performance out of it, but on a modest PC, you won’t get more than a few fps on the editor’s preview screen. And besides, Sony Vegas is super-crashy when using the Quicktime engine. Every time I had to edit footage from these Kodak digicams, I had to use proxy files. The MPEG4-SP format is NOT a heavy format (it’s even lighter than XViD, which in turn is much lighter than h.264), it’s just that PC’s Quicktime somehow sucks with it.

These days, I am preparing a laptop to give to my mom. She’s 54, she’s never used a computer before, but she wants to learn. So I’m thinking of giving her my HP 1120NR netbook (1.6 Ghz Atom, 1 GB RAM, 16 GB flash storage, 1024×576 res, latest well-configured Ubuntu). I have already left with her the last time I was in Greece my Kodak Z1275 too. It’s a digicam with 720/30p recording capabilities at 12 mbps (no manual controls in video mode, not even exposure compensation). I think she would really enjoy shooting pictures and videos with it — something she didn’t do so far since she had no computer to enjoy them (she just has a 14″ TV with no A/V inputs, but she might buy a 32″ HDTV soon).

So while I was preparing that netbook, I also installed PiTiVi, the only easy-to-use GTK+ video editor that can do HD. KDEnLive is a bit overkill for her I think. So while I was testing PiTiVi with Kodak’s MPEG4-SP format, I found that at least ffmpeg/gstreamer were able to playback the format easily, even via a video editor (which usually adds performance constraints to the decoder), and even with the usage of an Atom CPU. And when removing the toolbars and making its UI “fullscreen”, even at a 1024×576 resolution, video editing was very acceptable! Only one screen needs to be trimmed down to fit in that resolution (the Project Properties dialog).

Of course, PiTiVi, has no support for transitions, effects, or titles. It’s just a straight-cutter right now. But for someone like my mom, I think that would be good enough. It’s fast for the specific video format, somewhat stable (not amazingly though), and it can export back in a 720/30p format (XViD) that the Atom CPU can handle in real time either via VLC or Totem (720/30p h.264 is too close of a call with that CPU, plus, the latest Ubuntu “unrestricted” ffmpeg package has removed AAC support once again). So I envision a scenario of my mom shooting some video, editing it with PiTiVi, exporting as XViD to a 16 GB SDHC card, deleting the working files to save space in the measly internal storage, and playing back the XViD file from the SDHC card on a (new) HDTV via the HP-2-HDMI dongle (if I ever find to buy it, since it’s a rare hardware addon for that netbook model).

As for still pictures, I’m excited about the new F-Spot that features basic image manipulation tools.

Not sure if she will ever manage to learn all that stuff, since she can hardly use her Nokia S40 cellphone, but hey, why not? JBQ’s grandmother learned how to use a PC with Vista at her mid-70s, so it’s never too late.

Loading Canon digicam/dSLR footage on Avid MC4

From any Canon video dSLR or digicam h.264 format to AVID’s Media Composer 4 (MC4), using the Avid DNxHD intermediate format: step by step tutorial (PC & Mac). For 1080/30p timeline support on MC4 you will additional need the Symphony Nitris DX hardware though.

Grading with Lightroom 3 beta-1

Lightroom 3.0-beta1 was released last night for free, so I downloaded it and had a look at it. A 64-bit version is available too in the .zip file. App will work until April 2010.

I never tried that app before, since JBQ seems to dislike it. However, upon trying it, I really, really liked it. It’s like iMovie for pictures. It doesn’t do everything that Photoshop does, but it does enough to bring life or a more artistic look to your pictures. I only wish it had masking and an HDR mode. Look below my before and after images.

Regarding Apple’s iFrame Spec

There is undoubtedly a lot of pain around trying to edit h.264: there’s a lot of slowness, and often crashiness across the board of video editors. The way most people are going around the problem is either by using proxy files, or Cineform or other respectable intermediate formats (e.g. ProRES, Avid DNxHD).

Apple thinks that it can outsmart us all.

They recently released their new spec for an iFrame based h.264 format that’s locked to 540p. The reason for doing that was just so iMovie can deal with these impossible-to-edit h.264 formats without re-encoding into AIC (another bullshit format they invented back in the day). So far, two Sanyo cameras support the iFrame format.

The problem with the i-Frame idea is that it’s locked to 540p. There you are, buying a $400 1080p digirecorder, and Apple suggests you record in 540p, which is 1/4th of the camera’s native 1080p resolution! In other words, you just threw away in the garbage $300 just so Apple can say that its iMovie is fast to edit. Well, here’s a finger to you Apple.

What Apple should have done was simply to implement a proxy system. Not like their demanding proxy ProRES system like they have on FCP, but a simpler one. One that employs mpeg2 at either 640×360 or 854×480 at ~2 mbps. Mpeg2 is a piece of cake to decode, especially at 2 mbps low-res, they would be very small files considering the size of the originals, and as importantly, it’s really fast to encode. Encoding a 1080p h.264 stream to VGA mpeg2 will be ready in a flash on a modern machine!

And of course, the proxy system should be transparent to the iMovie user. Although, the user should have the preference available to decide if he/she wants the proxies in the first place, and switch between the two modes easily (in case he/she wants to color grade at the end of the editing process). And by default, the exporting will always be done using the high res native versions of the files.

In my opinion, this would be a very acceptable solution. Very little “waiting” for the user while encoding the proxies, very easy editing (much easier than the current iFrame format), flexibility, and exporting using the native files. Instead, what we get is one more of these Apple “innovations” that never actually solve the problem, but create new ones. While Apple has realized miracles in their iPod and iPhone divisions, the iMovie part of things always seemed like a disaster to me. It’s like they are putting their lower grade engineers to work on these projects.

Another way to battle the problem is to take their head out of their ass and implement full GPU acceleration (via Purevideo2 and similar technologies) for h.264 decoding. If a team of 3 freelance programmers are able to create CoreAVC, the fastest h.264 decoder in the world (5% CPU utilization on a 1080/30p video), then Apple (and Sony, and Adobe) should be able to do that too. Crippling people’s HD experience is never an option though.

Death to the iFrame.