A little musical Remix
Occassionally I hear tunes that I really like, but something isn’t quite right with them. Either there are parts that just don’t fit, or a chorus just isn’t long enough.
So, I like to remix them to get them sounding better.
Here is one such example, a remix of the Crystal Methods – Black Rainbows:
Crystal method-black rainbows(feat stefanie king warfield)RPM Edit by prupert
And here is another one, a remix of Cascada’s Evacuate the Dance Floor:
Cascada-Evacuate The Dance Floor (RPM Remix) by prupert
Google Chromium OS – I was right!
So, the first build of Chromium is released and as I predicted, it is simply a super-fast web-browsing platform, no more, no less. All those people who are criticising it for not being an MS killer are totally missing the point of it. It is meant to allow you to quickly and easily access the web and Google’s services, using devices manufactured by certain partners. Why would it try to compete with the likes of Ubuntu and Fedora, when both are so advanced and well supported already?
There will be a lot of disappointed people out there, when they see what Chromium is, but that is only because there are lots of people out there who don’t understand what Google wanted to achieve and were, as usual, being unrealistic about what it could achieve.
MythTV Recordings: Rename, Move and Delete From The Database
So, I have been using MythTV for a while now and it is a.w.e.s.o.m.e.. However, I had one problem, since I transcode and store all my videos on my Ubuntu server and not my MythTV box (which is off most of the time via mythwelcome) I had to manually transfer recorded files to my Ubuntu server via mythweb.
I thought this was a bit of a hokey solution, so I asked around if there was a script that allowed you to rename MythTV recordings (to a more human readable version), move them to another location and remove them from the MythTV database. There were some solutions out there, but they all involved the recorded files being kept in the MythTV database.
So, I wrote my own script. This script renames the MythTV files to a nice human understandable version using mythrename.pl, it then moves the recordings to a folder of your choice (in my case a mounted samba share on my server), it then uses myth.find_orphans.pl to delete the moved recordings from the mythTV database (I don’t know if it will still remember that these files were previously recorded so it doesn’t rerecord them or not, I guess time will tell).
So, without further ado, here is the script, in lovely Bash (the script is called mythtvremodel (mythtv REname MOve DELete, geddit?):
#! /bin/sh
### BEGIN INIT INFO
# Provides: mythtvremodel
# Required-Start: $local_fs $syslog $remote_fs dbus
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: rename, move delete recordings
### END INIT INFO
# script to rename files recorded from mythtv and then to move them and delete them
#made by prupert.co.uk
#creative commons licence, whichever is the most FREE (as in beer)
#lets put in some variables so others can use this
#location of log file, you can choose anything and any name
log=/path/to/mythtvremodel.log
#this is the full path to mythrename.pl
mrename=/location/to/mythrename.pl
#this is the full path to your recordings folder
record=/var/www/mythweb/data/recordings/
#this is the extension your recordings are stored as, usually mpg or nuv
ext=mpg
#this is the full path to where you want your files moved to
dest=/path/to/folder/to/move/recordings/to/
#this is the full path to myth.find_orphans.pl
morphan=/path/to/myth.find_orphans.pl
#mythtv database password for myth.find_orphans.pl
pass=yourmythtvdatabasepassword
# first, run mythtvrename to get nice names for the recordings
echo starting mythtvremodel on `date "+%m/%d/%y %l:%M:%S %p"` > $log
perl $mrename --underscores --format %T-%S-%d%m%y >> $log
# use find to search for all recorded files in the recording folder and move them to the TV folder
find "$record" -name "*.$ext" >> $log
find "$record" -name "*.$ext" -exec mv {} "$dest" \; >> $log
# use mythorphan to remove the now missing recorded files from the database
perl $morphan --pass=$pass --dodbdelete >> $log
#that should be it
echo stopping mythtvremodel on `date "+%m/%d/%y %l:%M:%S %p"` >> $log
exit 0
And there you have it. Now, since I run mythbuntu, I have put this script in /etc/rc0.d (thats rc zero . d) and have named it K03mythtvremodel, thus it is run when my system shuts down, but before all the samba shares and drives are unmounted. As I said, since I use mythwelcome to shutdown my machine when idle, this seemed like the best solution.
Hope it helps someone!
MediaCenter: PS3 No, XBMC YES!
So, for many months I have been slaving away with my PS3 and server, getting Mediatomb to work well and finding a setting for ffmpeg that my PS3 will like. What a waste of time!!
The fact that the PS3 only supports UPnP or locally stored videos is a joke, I mean, come on Sony, Windows Shares are where it is at. Mediatomb is great at what it does, but the interface of any UPnP device is just SO horrible.
However, the interface on XBMC is just liquid gold, that can be further customised via skins like Aeon or Mediastream. Both look truly beautiful and put the PS3 to shame. I would dearly love to run XBMC on my old Xbox, but sadly it just hasn’t got the processing power to play my .x264 encoded mp4 videos, so I will use it just as my Music player (still using XBMC on it though). Thus my HTPC, which primarily runs MythTV will now also be used to view my videos via XBMC. It seems rediculous to me that a machine as powerful as the PS3 comes with such an ugly and limited Media Player interface as the UPnP protocol. I guess because Sony are shortly to release Video Store to stream and download Videos, they want that to be the main way PS3 users access videos, and not ones they already own. At the end of the day, it is all about new revenue streams
Still, all I can say is that XBMC rules, and I wish I had an Acer Revo with the new Nvidea Ion platform to truly appreciate the full power of XBMC without worrying about messing up my MythTV set-up
Fix the Dell Mini 10v Touchpad
So, my lovely Wife recently got a rather cute Dell Mini 10v.
It comes with a horribly stripped down version of Ubuntu 8.04 from Dell pre-installed. Luckily, however, that can be ripped out and a nice new install of 9.04 can take its place and it all works wonderfully….except the touchpad. To save space, Dell has used a horrible touchpad that integrates the two left and right mouse buttons into the touchpad itself, so when you go to click on something, you actualy end up moving the mouse at the same time. I was amazed that no one mentioned this in any of the reviews about the mini 10v, I guess everyone was embarrassed since they thought it was just them and they had fat fingers! Luckily, the Open Source Ubuntu community being what it is, there is a fix out there.
If you follow this post there is a clear step-by-step guide telling you how to download some specialised drivers for the touchpad that disable the lower portion of the touchpad, so that it works just as a left and right mouse button and not as part of the touchpad. THANK YOU. My Wife was getting ready to throw her netbook out the window until I found that fix. Be warned though, it only works on the 9.04 (and hopefully later) versions of Ubuntu and not on the version of Ubuntu that comes pre-installed, so you will have to install a new normal version of Ubuntu from their website first (though this is a simple process). I hope this helps some one else and allows them to love their Mini 10v, not hate it!
Stop snort detecting local traffic
I use the rather excellent and Open Source snort to help monitor and protect my network. However, it was causing muchos havoc with my VNC, SSH and samba connections. I found out this was all down to (as is sadly normal for most opensource projects) confusion related to the configuration.
In the snort.conf file, you are meant to set you home network (the place you are protecting, but don’t want to detect), using
HOME_NET XXX.XXX.X.XXX
And then your external network (the place where attacks might come from and do want to detect) using
EXTERNAL_NET XXX.XXX.X.XXX
Now, the method the configuration and snort documentation tells you to use is, to basically tell snort that anything that isn’t in your home network is in your external nework, so
EXTERNAL_NET !HOME_NETWORK
The exclamation basically meaning NOT. However, if you put an IP address string as your home network, for example (as is suggested in the configuration)
HOME_NET 192.168.1.1/24
for some reason, using !HOME_NETWORK for your external network doesn’t work and snort will happily go and detect all traffic coming from your local network…GRR. Luckily, after some Googling I came across this message and found that the way to get EXTERNAL_NETWORK to work correctly was to use
EXTERNAL_NET [!192.168.1./24]
Finally, snort no longer goes ape about my local traffic and now only finds the retarded script kiddies from Russia and China and the Netherlands (since that is where most of the attacks I get come from) and blocks them. Thanks mailing list, no thanks snort.conf….
How To Use FFMPEG To Transcode Video For The PS3
So, it seems my last post actually wasn’t the best solution. Although using Mediatomb and VLC worked some of the time, often I found that the audio and video was out of sync, making it impossible to watch the movie.
So, I looked for another alternative. I already use HandBrakeCLI to transcode my videos, but that is essentially a front end to ffmpeg and x264. They are moving away from providing decent support for transcoding videos on the Playstation 3, so I decided to use ffmpeg directly. I used this guide to install the latest svn versions of ffmpeg and x264 on my Ubuntu 8.04 server. I then spent about two weeks trying to find an up-to-date command to actually use ffmpeg to create a PS3 compatible file. It seems most of the instructions on the web are way out of date and use commands that ffmpeg no longer accepts. Finally, after lots of trying I finally asked on the IRC channel #ffmpeg. This very nice dude called relaxed suggested the following:
ffmpeg -t 120 -i $input -vcodec libx264 -level 41 -vpre hq -crf 24 -threads 0 -acodec libfaac -ab 128k -ac 2 output.mp4
Sadly I had problems with this code, since the .mpg files I was using (I am now using MythTV instead of MediaPortal, but that’s another post) were not accepted by the libfaac codec.
However, with a little modification, I got the perfect command. So, without further ado, the best command I have found to convert ANY video accepted by ffmpeg into a PS3 compatible file using x264 that is good quality and low file size is:
ffmpeg -y -i "$1" -vcodec libx264 -level 41 -vpre normal -crf 24 -threads 0 -acodec libfaac -ab 128k -ac 2 -ar 48000 "$1".mp4
Obviously change $1 into your input file and “$1″.mp4 into your output file. If you want to send the command line output to a log file so you can see what is going in, use:
ffmpeg -y -i "$1" -vcodec libx264 -level 41 -vpre normal -crf 24 -threads 0 -acodec libfaac -ab 128k -ac 2 -ar 48000 "$1".mp4 > /where/you/store/your/logs/ffmpegprog.log 2>&1
Now, when I first saw this I thought, hey, its got hardly any switches (all the -XYZ stuff), therefore it must be cack. However, the key is the “-vpre normal” switch. This tells ffmpeg to use some of its built-in presets, or in this case built-in x264 presets that are created when you build x264 from SVN. I was initially told, as you can see from above, to use the “hq” preset, but I found this resulted in files that were quite big. Using the “normal” preset seemed to produce files that were of great quality compared to my original source (SD DVB-T transport streams in MPG format) but much smaller files size, for example, a .mpg transport stream movie that is originally 2.5GBs in size gets reduced to around 650 MBs, awesome.
So, this is the command I now use to convert all my videos. I also use comskip run via Wine to check for commercials and mp4box to mux in the chapter markers from comskip. Weirdly, I do find that when playing these resultant files via VLC they appear to have their audio and video out of sync, but on the PS3 they are fine. Whether this is due to me using an old VLC or my PC being too slow to play em, I don’t know, but hey, if it works.
So, if you are looking for the best ffmpeg command to transcode video files for the PS3 using ffmpeg and x264, I am pretty sure this is it.
As an aside, I also built HandBrakeCLI from SVN and it now also has a basic preset, called Normal, that also produces PS3 compatible files. I will play with them to see how they do, though I find that occasionally HandBrake can crash, and get stuck, so I try to avoid it. Sadly though, the HandBrake dev’s wont help you with this, since you are using the HandBrakeCLI and it is not the CLI that is crashing so they wont look into it for you. In fact (<rant>) I am really shocked at the rudeness and arrogance that the HandBrake devs demonstrate on their forum. I have read so many well worded and polite posts from confused people on their forums, where the devs (mainly a guy called jbrake) just answers back incredibly sarcastically and very rudely, providing little to no help. Maybe they get loads of annoying whiny posts from people who haven’t RTFM, but still, there is no need to be rude about it. In fact, that is the main reason I don’t want to use HandBrake, since I don’t like the attitude those guys have (</rant>).
Anyway, hope this awesome command for a recent SVN ffmpeg and x264 version to convert video files for PS3 works for you!
UPnP, PS3, Transcoding and MediaTomb
For quite a while I had been using PS3MediaServer to provide access to my Video files from my PS3. The problem was, I was getting huge problems getting it to support anything other than the files that the PS3 natively supports. I had previously messed around with MediaTomb but I couldn’t get it’s transcoding features to work. But then I came across this post and it sorted all my problems out. I simply followed the tutorial there and made some minor adjustments, which I will describe below.
The quickest way to follow the tutorial is to cheat and just copy and paste the config.xml that is kindly provided. However, I have found that copy and pasting the whole config.xml doesn’t work. I am pretty sure it is to do with the <udn>uuid= part of the config, since I guess this aligns and individual config to an individual MediaTomb installation. Thus, simply copy and paste all the stuff after and including this line:
“<protocolInfo extend=”yes”/><!– For PS3 support change to “yes” –>
and you’ll be good to go. Next, since most of my files are in the MKV container, I needed to add some extra stuff to support MKV files and the transcoding of them. So, I added the following two lines to their respective places (you can tell where they should go by looking at their format and looking for other lines that look similar). I added these two lines:
<map from=”mkv” to=”video/x-matroska”/>
<transcode mimetype=”video/x-matroska” using=”vlcmpeg”/>
And awesomely, it worked straight out of the box. Nice one Mr Pyke! There are a few more things to add, like adding thumbnail support, which I understand you can do by using a script and app called thumbnailermpeg, but that’s about it. I have found that using MediaTomb and VLC to transcode files puts much less strain on my server than using PS3MediaServer ever did. HTOP shows MediaTomb and VLC when streaming an MKV file pushing the server to around 15% CPU usage on my dual core Pentium4. Doing the same thing for one of the few supported movies by PS3MediaServer shows CPU usage maxed out at 100% on both cores full time. Ouchy! So I have saved some energy and prolonged the lifespan of my server by doing this too. I know that at the moment MediaTomb doesn’t do all the fancy things that PS3MediaServer does (like AC3 pass-through and stuff) but I can live without that. I am sure there was a lot I was missing in PS3MediaServer that it can do and it is updated much more frequently than MediaTomb, but I just couldn’t agree with the huge resource usage it entails.
I now have full streaming of all my recorded-off-the-tele MKV movies and I am a happy bunny, so thanks RobertPyke and thanks MediaTomb!
Windows Session Save and Restore
So, I do a lot of work from home and often have a large number of different programs and files open at the same time. I use two different computers, with the mouse and keyboard shared between the two using the excellent Synergy+. Often I am working on a particular project that last a number of days, each day I need to open the same files and folders. I was wondering if there was an app out there that allowed me to save my Windows “session” i.e. all the programs and files that I had open so I could quickly restore them the next day.
Now, after doing a lot of searching, sadly it seems there isn’t
The best solution seems to be to use Windows Standby/Hibernate. But this is kinda impracitcal, since I want to use the computer after I have saved the session. Another option seemed to be TwinsPlay which has a Session Save feature, but this seemed to crash my computer and kill Windows Explorer
so that was out. Another option was SmartClose however, this only managed to save the running programs, but not the actual files those programs had open (so it would save and restore OpenOffice, but not the XLS file that OpenOffice actually had open). So once again, this was no real use. My final option was Microsoft Research’s own GroupBar. Sadly though, this also only saved and restored the running program, not the file that that had open.
So, I am kinda stuck
My only alternative is to create a batch file to do this, so I would create a new text file, put in the following commands, as an example:
start /d C:\Windows\System32\ calc.exe
start /d "C:\Program Files\Mozilla Firefox" firefox.exe https://www.bankofamerica.com
start /d C:\finance\spreadsheets budget.xls
And then save it as start.bat (thanks to watchingthenet). But this is hardly the best solution. I am sure there is a better solution out there and if anyone knows it, hit me up in the comments (I recon Autohotkey can do this, but I don’t know where to start).






