Transcoding for XBOX 360 in H264 and AAC

Intro

Transcoding video for the XBOX 360 in H264 and AAC can be rather complicated as the XBox only supports a subset of the H264 features, AAC features, and also supports a few containers. According to this post over at xbox.com (http://bit.ly/6hUUZH) the XBOX 360 only supports the following profiles and containers for H264:

  • Containers: MPEG-4 (e.g. .avi) and Quicktime (e.g. .mp4)
  • Profiles: baseline, main, and high (upto level 4.1)
  • Video Bitrate: upto 10mbps (at 1920×1080 @ 30fps)
  • Audio Profiles: AAC, 2 channel, low complexity (no bitrate restrictions)

You might ask: How do we transcode a video that adhere to these restrictions? The solution is rather simple and involves the use of ffmpeg (or mencoder if you prefer). For this short guide I used Ubuntu 9.04.

More >

Asterisk 1.6 + Ruby + Voicemail + MP3

Asterisk 1.6 provides out of the box support for voice mail. It even goes as far as emailing the user a notification of a new voice mail together with an attachment containing the actual voice mail. This system is very simple and not very customizable. As a result I made it my endeavor to design a custom ruby script that Asterisk could call to handle voice mails.

What I wanted

  • Fully customize the body, subject, and MIME headers of the email being sent
  • Ability to convert the voice mails from wav to MP3 and attach it on the email
  • Ability to attach multiple files if necessary
  • Have a skeleton script that allows me to extend the voice mail even further to include features such as
    • Send notifications through Jabber or any other IM service.
    • Send push notifications to devices such as the iPhone and the Android.

More >

Asterisk 1.6 and AGI with Ruby

There are two different types of AGI libraries for Ruby available on the web. The first is for executing quick AGI script directly, and the second is for using FastAGI with a rails server. The simplest of the two is the quick AGI script.

There are two different ruby libraries that can used to handle AGI calls from Asterisk:

  1. batphone – Homepage
  2. ruby-agi – Homepage **outdated**

I have not gotten ruby-agi to work with Asterisk 1.6, therefor I will concentrate on batphone for this tutorial as I have gotten it to play very nicely with Asterisk 1.6. Batphone is a very simple ruby agi library that can be easily modified to fit any need.
More >

Asterisk 1.6 + Swift + Fax

Setting up Asterisk 1.6 with Swift and Fax support can be very confusing and frustrating at times. The people over at Digium have done a terrific job with Asterisk. My relationship with Asterisk has been an on-off one for some time now. I have recently developed interested again and decided to set up a new server with Asterisk 1.6. I had a lot of success and I am very satisfied with the work.

I’m writing this to document the steps I took to set up this server. This is meant to be a guide and I don’t guarantee the mileage you might obtain. Feel free to post questions in the comments section and I will attempt to answer the questions as they come.

More >

Reflow Oven Controller!

Soldering SMT devices with a decent soldering station is not impossible, but it is hard, specially for someone not great in the art (like me!). I have known about reflow ovens for a long time, but I knew that such a device would be out of my monetary reach, but what is keeping me from making my own reflow oven? Nothing!

After browsing around the web and reading about people’s experience with designing reflow oven controllers I decided to build my own. The controller board is quite simple and is designed out of through-hole devices for easy soldering. Below is a schematic of the final design I sent out to manufacturing.

Schematic

Schematic

Board

Board

Make your own circuit boards cheap!

Being student definately has its incredible benefits! All you need to design a circuit board, print it and put it together is some passion, some money, and a soldering iron. But more specifically, you will need the following:

  • EagleCAD (http://www.cadsoft.de)
    • Student can get the standard version of this program for $125 (non-profit only). This allows for design of up to 4 layers, 160×100mm board size, and includes autorouter!)
    • Non-students can get the light version for $49 which is limited to two-layers (enough for hobby projects), 100×80mm board size, and also include autorouter!)
  • Advanced Circuits Fab House (http://www.4pcb.com)
    • Students get the following prices
      • 2 layer – $33 each
      • 4 layer – $66 each
      • The best part, there is no minimum order quantity! In addition, if you order 3 boards you will get the 4th for free.
    • Non-students get the following prices
      • 2 layer – $33
      • 4 layer – $66
      • Minimum of three boards.
  • Soldering station
    • A simple soldering iron will get you very far, but a more expensive one will get you anywhere. I recommend the following soldering station for the serious hobbyist:
      • Weller WD1001 (Street: $250)
      • Weller WD1002 (Street: $260)
      • These stations are perfect for any soldering job (even SMD/SMT at 0.5mm pitch!)
    • Cheaper soldering station
      • Any soldering pen from Radioshack, Fry’s, or any other electronics/hardware store. (Street: ~$30)
      • Keep in mind that these soldering tools are generally not fine enough to do SMT/SMD soldering.

Dog Collar Project

Summary

Dogs are very curious creatures and they love to explore the world. My dog, a Maltese, is no exception. When he spots a door open he makes a run for it and usually gets lost outside with no way of finding his way back home. This immediately led me to try to find a GPS collar so I could spot him anywhere he went, but I was amazed at the size of these devices (huge!) and the fact that monthly/yearly fees are usually involved. As a result I decided to design one myself!

The key to make this device small is to use modern SMD/SMT chips from companies like Atmel, Skytraq, Analog Devices, and Meshnetics. Below is a general layout of how all these components come together.

DogCollar_Concept1Bill of Materials

  • Atmel ATMega328P – Microcontroller
  • Fairchild FAN1117AS33X – 3.3V LDO
  • FTDI FT232RL – USB to UART Bridge
  • SkyTraq Venus634FLPx – GPS Module
  • Fractus FR05-S1-E-0-103 – GPS Chip Antenna
  • Meshnetics ZigBit 900 – 900Hz ZigBee Module
  • RF Digital RFD58004 – Zigbee Chip Antenna

How it will work

Device will operate in one of the following two modes.

  • Mode: Normal
    • Dog is within the virtual fence defined in software and/or not moving. Device is in intermittent sleep mode (low power mode).
    • Process
      • Read GPS and Accelerometer (5 – 30 seconds)
      • Determine if dog is moving and/or outside the virtual fence area
      • Goto critical mode if outside virtual fence
  • Mode: Critical
    • Dog is beyond the virtual fence. Device is in full power mode in this mode and constantly polling the GPS and accelerometer.
    • Process
      • Read GPS and Accelerometer
      • Enable high-powered LEDs
      • Stream location and motion information through ZigBee

Status

I’m currently engineering the circuit on Eagle CAD and hope to have a working prototype in the next few weeks. I will attempt to have it fabbed here in Georgia Tech, but I will most likely have to resort to www.4pcb.com ($33 per 2-layer PCB for students! No minimums!)

GT Lawn Application

Georgia Tech’s LAWN (Local Area Walkup/Wireless Network) can be very annoying at times, specially when moving across access points on campus. As a result GT Lawn Application was born! This application uses the QT Framework combined with the LAWN API. The application is still under heavy development, but it is finally seeing the light of day. View more details for more information and downloads.

Features

  • Keeps you connected across access point changes, network changes, and restarts
  • Configuration of firewall (ISS – Inbound Service Security)
  • Runs on the tray and keeps out of your way
  • Cross platform! (Linux and Mac builds coming soon)

Screen Shots


Download

GT Lawn Application – Version 0.1 Build 57 (download) ** Preview Build / Under Development **

Known Issues

  • Settings dialog box not working correctly (fixed!)
  • Changing ISS setting does not work
  • Application will repeat notifications multiple times while running
  • Application will attempt to log on a second time after already being logged on
  • Not working on some Windows XP machines

Bug Report

Please send all bug reports to juanqui@gatech.edu