I had some video footage at 4:3 aspect which I wanted to scale and crop to fit a 16:9 wide-screen PAL format. My first attempt was to scale the video to 720×540 (maintaining the 4:3 aspect ratio) and then crop to 720×405 (a 16:9 ratio)
mplayer -vf scale=720:540,crop=720:405 movie.mpg
However PAL has a resolution of 720×576 so I then had to scale the video again
mplayer -vf scale=720:540,crop=720:405,scale=720:576 -aspect 16/9 movie.mpg
What I wanted was to do this in a more simple manner. I realised that I mearly need to scale it to be larger in the first operation, But how much larger? Well since I wanted to crop the same proportion of the image I simply needed to calculate the aspect of the cropped proportion. Which was 540/405 or 4/3 So I actually want my video to be 4/3 taller than its final height. So we want the movie to be 576 × 4/3 = 768
mplayer -vf scale=720:768,crop=720:576 -aspect 16/9 movie.mpg
Here is how one can crudely stream video over the network.
On the server run:
nc -l -p 5500 < video.mpg
And on the client run:
nc 192.168.55.8 5500 | mplayer -cache 8192 -
Human: Ed is a duck.
Computer: Ok ed is a duck.
Human: Ducks can fly.
Computer: Ok ducks can fly.
Human: Can Ed fly?
Human: But Ed is dead.
Computer: Ok Ed is dead.
Human: Can Ed Fly?
Human: Dead things cannot fly.
Computer: Ok dead things cannot fly.
Human: Can Ed fly?
Computers are stupid, they do not have any common sense. You or I would know that ed cannot fly as soon as we were told that ed is dead, but a computer lives in a closed world and as such cannot make any assumptions. This is a good thing because the world would be a very different place if computers did make assumptions. However to make a computer give intelligable answers to questions you need a rules engine.
A Rules engine could consist of a set of processes, i.e a process for each rule that you want to assert to be true. The process could consist of reading some information from a system and then making decisions based on the information. In other words procedural programming.
However, this approach is rather tedious. What you might rather do is describe the set of constraints that must hold true, and have a set of processes generated automatically.
Well that sounds nice, but is it even possible? Well actually yes, and that is what Rules Engines, Constraint based programming 5GL’s are all about.
Today I am celebrating three months AJ (Thats 3 months After i met Joey) I am thinking of taking her to a nice reasturant this evening to celebrate. By the way if you ever happen to read this Joey….Eu te amo.
I wanted to view youtube videos on my phone, but unfortunately the mobile youtube site seems to have less content than the full site. So I decided to make my own mobile phone compatible video files and upload it to my phone. First things first I needed to get the flash video file from the youtube URL, which can be done with this handy site. Next i needed to convert the flash video into a .3gp file that is compatible with my mobile phone. This can be done using ffmpeg (I used a windows version of ffmpeg)
I converted the flash video using the following command.
ffmpeg -i movie.flv -s qcif -r 12 -b 30k
-ar 8000 -ac 1 -ab 12.2k movie.3gp
Finally I copied the files into the video folder on my phone using standard USB Storage Media drivers in windows, which simply present my phone to me as if it were a Hard Drive.
After recently finding this British History Timeline, I decided to map out a brief history of Giles Bathgate. The first blue section represents my early childhood. Followed by a green section representing my Pre-school years. The orange section is my time at Secondary School, followed by the two years at college in yellow. The four years I spent at University are purple followed finally a blue section which represents working up to the present day. The red section at the end represents the range of years in which i might pass away due to natural causes.
I used the following code to generate the timeline image.
Continue reading Personal Timeline
I recently decided to try to transcode an .mp4 (quicktime) movie to burn on to a dvd. Using a windows version of MPlayer and following these instructions I started the transcoding process.
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf
-vf scale=720:432,expand=720:576,harddup -srate 48000 -af
lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:
abitrate=192:aspect=16/9 -ofps 25 -o movie.mpg movie.mp4
This was not the end of the story however. The next step was to convert the output MPG file info a DVD filesystem. This was done using DVDAuthour fortunately version 0.6.9 comes in precompiled windows binaries. The documentation for DVDAuthour was a little flakey however the easiest way was to create the XML file
<video format="pal" aspect="16:9" resolution="720x576"/>
<vob file="movie.mpg" />
And then build the dvd filesystem using
dvdauthor -o ./dvd -x dvdauthour.xml
Finally I have to burn the files to disk using the windows version of growisofs (which requires mkisofs) Using the command
growisofs -dvd-compat -Z e: -dvd-video -V "VIDEO_DVD" ./dvd
I decided to install wordpress. It was surprisingly easy once I had checked that my server supported the requirements, (which was the hardest part) and that I could overlay the WordPress database tables into the wiki database. It was a doddle.
This morning one of my colleague’s phoned me telling me that he had forgotten his password. I advised him to download and use the Offline NT Password & Registry Editor I recalled the last time I used it being incredibly non user friendly and also because of the bad NTFS write support. The experience of having to run chkdsk on reboot made me feel very uneasy. When I get time I would like to make a Slax based LiveCD that uses the new NTFS user mode mount tool which has better write support, and perhaps a nice curses based menu system that steps you through the process.
Above is my new 88 key keyboard its much better quality and lots of fun. Below is the midi controller I bought at the same time.