Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 30 31 32 33 34 35 36 37 38 ... 40 ... 45 ... 50 ... 55 ... 60 ... 65 ... 70 ... 75
H.264 + AAC for Quicktime
Date: 16/10/2007
Today I was developing a mp4 encode path for my private stock VidEnc application which takes mpeg2 from Digital TV and re-encodes it. It has for a long time supported mpeg2 to xvid/avi via besweet and mencoder. But mencoder has a problem on longer videos where it drops the first 'n' frames, somewhere between 1 and 6 seconds of video. I could never figure this out so I just print out the "offset" to remux the A/V in VirtualDub. A right pain I can tell you.

So after using Handbrake a lot I decided that the pain of developing a new video pipeline would be offset by the better quality of H.264 and the smaller filesizes. So today I had some time and got into it. Things went fairly smoothly until I got my output mp4 file, and it wouldn't play in Quicktime.

This, as I'm finding out, is not unusual because Quicktime7 doesn't fully support H.264, just a subset of it. Anyway that wasn't what was causing this: "Error -50: An unknown error has occured" when I tried to open the file. My pipeline as it stands is:
  • Mpeg2 -> Pvastrumento -> separate a/v
  • Audio -> besweet to wav -> faac to aac
  • Video -> x264 to mp4
  • Mp4box to mux the A/V back together

I now know that I can do the Audio -> aac in one step using Besweet, but I havn't gotten around to fixing it yet. However there are a few gotchas in creating suitable mp4 files for QT7.
  • The AAC audio must be of the type MPEG4, rather than MPEG2. The faac option is "-w" to do that.
  • x264 should output to .mp4, not .264
  • Don't go higher then "--bframes 2" for x264.
  • Don't use "--b-pyramid" for x264 either.
This should give you a playable mp4.

(0) Comments | Add Comment

Linux "gethostbyname_r"
Date: 12/10/2007
Ever since v1.87-test21 the linux build of Scribe has used gethostbyname_r to resolve hosts before making a socket connection. This on the most part has worked, but on some machines it fails consistently. And like most weird errors it's very difficult to find a solution when the person experiencing the issue stops responding to your emails. Nevertheless eventually it happens to me and I get a crack at fixing the issue up close and personal. That was today.

I was valgrinding some code in Ubuntu and gethostbyname_r was returning non-zero, with an error code of -1. Which is basically what people have been reporting on and off for years. So I started hunting around on Google and I found this. The example shows how to increase the buffer size until the function returns success. I was passing in a fixed buffer of 256 bytes, and they start with a variable length buffer of 1024 bytes and double it if it fails... so I try tweaking it up to 1024 and magically it starts working. It is curious that the function needs an extra block of application allocated memory to function. You'd think that internally it could just use malloc/free for all it's own memory needs. Or even maybe return a valid error code via the "int *h_errnop" parameter instead of -1, like say ERANGE!

Glibc... what can I say?
(0) Comments | Add Comment

Browser Stats
Date: 28/9/2007
The great browser stats graph is back. A recent server upgrade enabled the PHP image script.

The red spike is the great bot invasion which I now filter out. Also Firefox is going great guns against IE, it's really surging ahead, which is lovely to see. It's somewhat sad that almost half the traffic to this site are now programs instead of actual people. I didn't realize, but I have almost 3 years of browser usage logs. Some interesting trends in there.
(0) Comments | Add Comment

Merchant Account
Date: 25/9/2007
People often ask why I only offer the PayPal payment method for InScribe. So I thought I'd share a little on why that is so and my recent travels.

A long time ago people buying InScribe would pay through Kagi, which accepted credit card details, collect the money and sent me a cheque every so often. This was a bit painful in that I didn't have ready access to the funds and the level of fraud kept going up and up. So I looked around for an alternative with better fees and better management.

Enter PayPal, which some deem to be evil. So PayPal accepts credit cards too, but the fee is $0.98 instead of $1.50. And I can pull the funds out anytime I like for free and the level of fraud is tiny compared to Kagi. I can buy other things directly from my PayPal balance (Ebay!!!). So it's cheap and flexible, and you don't even need to sign up to use it. But some people don't like it (I'm still yet to get a good reason).

So I'm looking around for a cheap low volume alternative for accepting credit/debit cards over the internet. The local banks usually quote you $250 setup + excessive transaction/yearly fees for a merchant account. Which clearly would be a losing proposition for the odd transaction here or there. But recently I bumped into this page which claims that you can get a low volume batched interface with merchant account for $29/year. Which is starting to sound more like it. More investigation required!

First I get my lil browser over to the Commonwealth bank and fill in their contact form with my details. Click the submit button... and... it just reloads the form. No error message, no message sent. Their contact page is broken. Hmmm clearly they don't want my business.

So try again, off to ANZ this time. From their merchant options page I click the "Request a quote" link (which gives me a queasy feeling already) and fill out their form. Click "Submit" and... I get "All mandatory fields need to be completed. Please enter your details in fields marked with a red cross." Of course the field in question IS filled in. Maybe they didn't like the answer I gave? So I try a different value. Nope still no good. So they don't want my business either?

Seems that putting the fees for your product in black and white on your website for people to make a educated decision about a banking product is just too hard for the banks. They want you to wade through the steaming bog of their sales lines or broken websites to find out that the product is over-priced, for what? Getting your contacts details exposed to their marketing dept.? Having your details on-sold to every low brow financial scammer this side of the equator?

Anyone else? Oh look here, NAB. So apparently they have a product called "Direct Auth Plus". But there website doesn't have any information whatsoever on it. So it must be super secret! Can't have potential customers finding out about our super secret products? I mean why even have a website? Our potential customers might Google us?

Am I missing anyone? Is there a cheap merchant account in Australia? I think not.

(And before you go suggesting Google checkout (US + UK only), or some other overseas payment system, consider the ease of getting money out, converted to AUD and deposited into an Australian account, and the fees which have to be competitive... not more than about 7% for a $20usd transaction)
(1) Comment | Add Comment

Private Stock
Date: 10/9/2007
I write all sorts of software that I just use myself with no intention of releasing. This latest one is because I hate WinAmp:

It just reads a whole folder tree of music and displays it, reading the tags on the fly in a thread and lets you play back the music, mp3 and ogg mostly. Ultra lightweight of course. Probably too lightweight. Oh well.

Some of the other ones are:
  • Car search app: aggregates search results from various car for sale sites with more advanced filtering, sorting than the source sites... with thumbnails. Don't need it much now that I've bought a car.
  • Videnc: video pipeline manager for HDTV -> avi via a number of other apps. It's manages to avoid a/v desync by using a very error tolerate demuxer app, which it scripts even though it's GUI only. All other tools I've tried including everything on the Mac and PC are hopeless on HDTV streams because of the number of stream errors present.
  • Html2Xmltv: My private stock EPG app. Schedule and go.
  • i.Archive: front end for some stupid little archiving tools, e.g. "rar".
  • HttpLoggingProxy: a visual proxy, lets you inspect every HTTP request and response with some decoding tools. Pretty freakin neat. I don't know of any free ones so I wrote my own... cut down version of Charles.
  • TranscodeDrop: little pad to drop audio and playlists onto to convert them via BeSweet.
  • VideoSaver: My video screensaver. Lil DirectShow screensaver that plays random parts of video's from a folder. This gets lots of comments when people see it :)
(4) Comments | Add Comment

Phase 2 In The Grand Green Earth Plan
Date: 4/9/2007
After a successful Phase 1 of the Grand Green Earth Plan for my house hold. Phase 2 went into effect last week with the purchase of green(er) family transport:

We are with you.

For those who care about numbers, and it does all come down to numbers, here they are: It's not as good as I was hoping but when budget, size, drivability, features and safety collide it's always going to get messy. I really like that we have 4 air bags now as well as the improved economy. I've seen a few trucks run reds and the messy aftermath... and I for one want a little bit more between me, my family and the truck's bull bar.

Phase 3 perhaps...?
(0) Comments | Add Comment