Archive for ‘Video’ Category

More Siggraph Madness….Is anything real nowadays?….

datePosted on 12:41, August 18th, 2008 by Many Ayromlou

More crazy image-enhanced video rendering papers from University of Washington being presented at Siggraph08. I just can’t get enough of these new applications of combining crappy video and some still frames to produce eye popping results. Most of the experiments in this video were done using a standard video camera and a hi-res still camera. The results were combined, some secret sauce added and you end up with these killer results. I for one can’t wait for editing packages to include some of these research topics as new features….Can you say UNREAL :-)

Kraak and Smaak’s visual flipbook feast

datePosted on 13:11, July 12th, 2008 by Many Ayromlou

This brand new Kraak and Smaak video is just too cool. Makes me want to do some flipbooking of my own. Great visuals and well fantastic music to boot…..enjoy :-).

Well kids are you ready for todays lesson in transcoding DV video. So first you need a decent machine. I’m using a P4 2.4Ghz oldie that has Firewire on-board and am chewing up 50% CPU for NTSC encoding. Then you need to get Ubuntu 8.04 installed. Once that’s done use the following command to install vlc (Video Lan Client):
sudo apt-get install vlc
Then either follow this guide or if you’re using 8.04 (Hardy Heron) ONLY, use the following command to add Medibuntu to your repository sources.list:
sudo wget -O /etc/apt/sources.list.d/medibuntu.list
followed by
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
to add the GPG key for Medibuntu Repository. You may be asked to accept this package even though it cannot be authenticated. This is normal; typing “Yes” means you trust Medibuntu.
Now do the following commands to get libdvdcss and other codecs installed on your machine:
sudo apt-get install libdvdcss2
sudo apt-get install w32codecs (for i386 architecture) OR
sudo apt-get install w64codecs (for amd64 architecture)

Now that we have all the goodies installed and ready to go you can go ahead and connect that DV camera to your Ubuntu box using Firewire. Make sure it’s in Camera mode (NOT VCR) and open up a command line and type in the following command to get the encoder setup:
sudo -i (This will put you in superuser root account)
cat /dev/dv1394/0 | vlc - :demux=rawdv -I dummy --sout '#transcode{vcodec=mp4v,vb=1024,acodec=mpga,ab=192,scale=1,width=720,height=480}:duplicate{dst=std{access=udp,mux=ts,dst=IPAddressofDestinationMachine:PortNumber}}'

You could also run the above command from your user account by adding sudo infront of it and supply your password followed by Enter key.

The above command (in case you’re wondering) will literally open device zero on the firewire chain and redirect it’s raw output into the VLC program. VLC is told to accept input from a pipe in rawdv format and to transcode it to mpeg4 Video @ 1Mb/s with mpeg1-layer3 audio @ 192 Kb/s.

Once the above command is running you’ll need to go to your receiving machine (the machine who’s IP you supplied in the command above), run VLC and from the File menu choose “Open Network Stream” and go with the default UDP/RTP on port 1234 (or whatever port you chose in the encoder command line).

Another neat thing you can do with your new found opensource goody bag is capture DV from your camera/settop box and save it in mpeg4 format for archival purposes (or mpeg2 for editing maybe). I’m not gonna get into the details, but assuming you’ve done the above commands, skip the encoder command and issue the following command to get your DV stream saved:
sudo -i
cat /dev/dv1394/0 | ffmpeg -f dv -i - -f mp4 -s 720x480 -vcodec mpeg4 -acodec aac -ab 128 -ar 44100 -deinterlace -b 3000k -y yourfilename.mp4

This command will take rawdv from the camera, pass it to ffmpeg, which will chew on it and spit it out as mpeg4 video @ 3Mb/s with AAC audio @ 128Kb/s into a file named yourfilename.mp4 (if the file exists it will overwrite it). Stopping is accomplished by CTRL-C. More info on this command can be found on ffmpeg’s man page.

Have Fun….

A lot of people seem to be having problems (issues) with the original way I had proposed here using command line. So, I figured I make it real simple and do a graphical tutorial with screen shots to boot :-). In this example we first deal with the server (running windows) at IP address, then we move to our client (Mac OSX) at IP address and view the servers screen remotely through streaming video. So first on the server (remember is the IP address):
1) Bring up VLC and select File/Open Capture Device (Ctrl-A). You should see this screen modify the bottom portion (Advanced Options), so it looks like this picture below. You can decrease screen-fps to 15 if you like to speed things up a bit.

2) On that same screen Click on the Settings… button beside Stream/Save and you’ll see the following screen. Make sure it’s configured this way if you want to do the streaming through HTTP protocol. Audio Codec does not need to be checked, since there is no audio, I just put it in as habit. Note the Address field is the IP address of the same machine (the server in this case), which is This can be a bit confusing.
3) Press Okay twice and your VLC server is up and running serving your desktop to whoever wants to watch (Note: This WILL slow down your server machine considerably).
4) Go to your client machine ( in our case), run VLC and go to File/Open Network menu option and fill it in as follows. Note that we’re connecting to our server at now.
5) Press okay and you should see the stream from your server now…..DONE!!

That’s good piloting…

datePosted on 13:21, March 4th, 2008 by Many Ayromlou

Check this out…’s absolutely amazing that the pilot actually managed to pull it off.

The best 5 minutes you’ll spend today…..

datePosted on 14:08, February 29th, 2008 by Many Ayromlou

Just watch this. I promise.

Stream your Linux/Windows/Mac Desktop as video using VLC

datePosted on 17:54, January 8th, 2008 by Many Ayromlou

A buddy of mine (thanks Mike) showed me this today. There is a input Access module in the newer versions of VLC (0.8.6+) called “screen” which makes this possible. To stream your desktop to another machine (ip address: in this case) just use the following command in Linux (sorry command line only):vlc screen:// :screen-fps=30 :screen-caching=100 --sout '#transcode{vcodec=mp4v,vb=4096,acodec=mpga,ab=256,scale=1,width=1280,height=800}:rtp{dst=,port=1234,access=udp,mux=ts}'or in Windows (slightly different syntax) use this command:vlc screen:// :screen-fps=30 :screen-caching=100 :sout=#transcode{vcodec=mp4v,vb=2048,scale=1,acodec=mpga,ab=192,channels=2}:duplicate{dst=std{access=rtp,mux=ts,dst=}}This is one massive command, so lets take a look at it in more detail:

  • screen:// is our input module selection (if you just run vlc screen:// you’ll see your own screen on the server inside vlc….kinda cool)
  • :screen-fps=30 specifies that we want to screengrab at 30 fps (from default 5 fps)
  • :screen-caching=100 sets the internal caching to 100ms (from default 300 ms)
  • –sout is our output chain.
  • #transcode tells vlc that we first want to transcode the input using parameters to follow
  • {} contains our transcoding parameters
  • vcodec=mp4v sets the video codec to mpeg4 video
  • vb=4096 sets the bitrate of the transcoded video (4Mb/s)
  • acodec=mpga sets the audio codec to mpeg audio (mp3). Audio does not work yet, this is a place holder.
  • ab=256 sets the bitrate of the transcoded audio (256 Kb/s)
  • scale=1 sets the scaling value
  • width=1280 sets the width of the transcoded video to 1280 pixels
  • height=800 sets the height of the transcoded video to 800 pixels
  • :rtp tells VLC that we want to use rtp protocol to send the encoder output to our receiver machine using Real Time Protocol.
  • dst= is the ip address of our destination/playback machine
  • port=1234 is the default port on the destination/playback machine
  • access=udp specifies UDP protocol
  • mux=ts sets multiplexing to mpeg-2 Transport stream

Now on the destination machine just open vlc, goto File/Open Network and by default the Media Resource Locator on top of the window should read udp:// and UDP/RTP with port 1234 should be selected. If it’s not select UDP/RTP (option 1) and put 1234 as the port number. Press Okay and you should see the video stream from the other machine (your server machine). That’s it….Opensource comes to rescue again :-)

Computer History Museum on YouTube

datePosted on 12:19, December 17th, 2007 by Many Ayromlou

If you like to see some of the most prolific Engineers and Scientists of our time talk about how we got to where we are in computers, head over to the Computer History Museum Channel on You Tube. Oh, and if you’re ever in Northern California somewhere, take a side trip to Mountain View and visit the Museum in person, I did.

Cool Hand Tracking Video….

datePosted on 17:36, November 25th, 2007 by Many Ayromlou

Speaking of hand tracking, here is a video of a guy playing around with an unknown system (looks a bit like linux). Very cool demo and almost perfect tracking. Not sure if it’s IR or not, you can see him in the corner of the screen, but can’t quite tell how it’s done. Anyways, I’m posting it since it’s one of the better ones I’ve seen. From the description:

A C++ computer vision application to emulate the mouse and the keyboard in any application using hand gestures and a low-cost webcam.

For all your conversion needs….

datePosted on 11:46, September 23rd, 2007 by Many Ayromlou

Head over to I’ve been waiting for something like this since the early days of the web and it seems like these people have done it. It’s simple, go to the site, upload your file and choose which format you want to convert it to. Give them your email address and they will send you a link to the converted file when it’s done. simple.

They can handle more than 70 different types of graphics, 40 different document formats, 7 different types of audio files and more that 10 different video file formats. As a bonus they also allow you to do unit conversion :-)