Archives for the month of: July, 2012

Still playing pretty heavily in PseudoTV, and it’s definitely spoiled me quite a bit.

After over 7 years of not watching TV channels (besides the occasional FoodTV binge at a friend’s house), I now recognize the attraction to having “regular TV”, such as not having to specifically plan what to put on and not having to commit to watching something from the beginning.

It’s not for always, but it’s nice to have some times just purely to zone out a little.

Things of note so far that make PseudoTV happy:

  • Consider deleting all tvshow.nfo files before pulling the shows in to the XBMC library (this allows it to pull more categories from the internet)
  • Go through any video directories that you have set as Movies or TV Shows, and check for any orphans that did not show up in the library (in the file list: highlight > context menu > movie/show/episode information)
  • PseudoTV “directory channels” do not need the content to be in the library, however the script does not see files mounted through SFTP (other protocols may be affected as well). This can be resolved by mounting the share as a drive letter in windows or using the mount command in linux

Now at 22 channels, PseudoTV is a little less happy on the Raspberry Pi, but it’s as responsive as on the main laptop, which is fantastic 🙂

Advertisements

So, there have been a few changes in the last few days, constantly working on the House Acceptance Factor.

There’s an update to the Network Access stuff coming which will add some more information about speed, but for now: More tweaks!

  • Bumped up to arm_freq=900 (from 850 – there is still a lot of way to go for optimizing all the config.txt settings, but one test at a time) edit: had a couple crashes when doing the more intensive things, so brought this back to 850)
  • Disable Fanart (Settings > Skin > Background Options > enable “Hide Background Fanart”) – This actually made a tremendous difference, and is not missed that bad with analog out… we have a non-default background that the kids pick, and that helps
  • Disable “Recently Watched” (Settings > Skin > Home Window Options > disable “Show Recently Added Videos”) Note: while I notice a difference in performance, I actually keep this enabled because it’s a decent tradeoff for people waiting for the new shows.
  • Mentioned before: Disable reading thumbnails from the files (Settings > Video > disable “Extract thumbnail and video information”)

A quick AHA moment came today when I was witnessing how achingly slow the RasPi was browsing through TV shows (Choose title, count to 7, choose season, count to 7, choose episode, etc).

So, aha; Went straight to XBMC > Settings > Video > File and deselected ‘generate thumbnails’.
Note: If anyone with clout reads this; this should be default for RasPi installs.

XBMC does not use the GPU to process thumbnails, which means that every time you are browsing a folder, it’s using the underpowered CPU to read one file, render a frame, and compress that in to an image, then do that for every thing else on the screen.

Edit: I don’t have the coding skills to put in the work to make this happen, but what makes sense is to split off a thread that generates the thumbnails with absolute low priority and ability to be terminated instantly (when someone presses play, or changes folders). The UI should also stop caring altogether when the thread is sent off: it shouldn’t wait, but just check in passively later to see if it’s done.

We obviously want speed when accessing files over the network; I would even say that for just the media files, it’s the only thing that we care about. (Security is only a factor when dealing with personal media, or when letting everyone add and delete from the folders) I take care to make sure that the home network is secure, and set unique passwords or use encryption keys when necessary – This serves not only the function of making sure the kids only watch what’s rated for them, but also a test bed for the smaller business clients that I work with. Unfortunately, large file access has continued to be an issue – there’s no true cross-platform file system that allows files over 4GB (which is small for a HD movie), and cross-platform network file access is also rocky, with SMB/CIFS being the ‘standard’ because a lot of work went in to reverse engineering what windows uses so that admins could run linux and not have everyone burning their doors down because of how much things changed.

Samba (SMB)

Of course, SMB is notoriously slow and bloated as a protocol, but it’s also built in to every major operating system and very simple to configure, making it the obvious choice. CIFS, which speaks the same language, is the preferred choice in many cases, but it’s like organizing a piled-high room without taking anything out of it. Better, but not good. (note: in many cases, SMB and CIFS are terms that are used interchangeably, and the differences are in specific situations)Unfortunately the raspberry pi, with it’s lower powered cpu, starts to reveal just how bloated this is, leading to slow scraping, slow directory lists, and even buffer issues in some cases. My media server is set up for SMB since it shares to all number of devices, but now we have to look ahead a bit further.

Apple Filing Protocol (AFP)

AFP is great for communicating between Macs running OSX, but is not at all cross-platform. Again; the work being done by countless dedicated volunteers means that we can set up Linux to be an AFP file server (it takes some doing), but it’s far from cross-platform. Thankfully as of XBMC 11, we have support for connecting to AFP servers so we can do some testing.

Network File System (NFS)

The only open standard that I would still consider as a ‘standard’ method of accessing files, and seems to be the preference for many people using XBMC on low-cpu machines. I’ve not been in any scenarios where it was a valid option for deployment, so have not taken the time to dive in to it. On the surface, it’s very obviously designed by people who value organization and covering all bases with complexity; great for large scale and high-availability server situations, but not so much fun just so I can (hopefully) shave the directory listing times down to something reasonable and test out the buffer issues (which means rebuilding the library), but worth testing.

Special Mention: Plex

Plex, since it split off from XBMC has taken many user experience and user interface cues from Apple, and has shifted from XBMC’s Everything and the kitchen sink on your desktop (and all the desktops) to a server-client model. This means that the library and the files are all kept in one place, and the Plex client simply asks for them in a sane way, with the server transcoding the content when it’s the right choice. Why I mention it here, is that having a native Plex client on the RasPi would mean I don’t have to even think about network file access, nor do I have to think about making sure that the kids don’t press play on any R-Rated movies… But, we’re not there yet. Interestingly enough, this Raspberry Pi project, while exposing me to the current stage of XBMC (which I have not run for a few years) has really made me long for certain functionality and control in Plex that is not there. I’ve mentioned before that my ideal setup is Plex media server. I’ve added Pseudo TV to the wish list, and I’m now realizing that without a TV-like experience, TV gets taken too seriously and a lot of the content is never actually watched. It’s like having a walk-in closet full of clothes and being comfortable in the same 4 outfits.. Triply so when it comes to reconciling the tastes of 4 kids with a netflix subscription… The lowest common denominator is the one that’s always on.. With TV, there were many unexpected enjoyable family watchings of the food network or documentaries that cropped up, and even the stuff that’s not first pick, but worth at least 15min never gets touched when the choice is always active.

How to Update OpenELEC and the Raspberry Pi Firmware Without Pulling the SD Card

Also, we re-learned how being bleeding edge can bite you as it teaches.

Thanks to

hippojay

We now have PleXBMC V2

Post: http://forums.plexapp.com/…/page__view__findpost__p__276659

Download: https://github.com/…/plugin.video.plexbmc-V2.zip

Features added:

  • myplex integration (this is the only way to connect to remote servers)
  • Fixes for TV section library refresh
  • Fixed for Plugins (I’ve tested a fair few and they seem to work)
  • Some fixes for non-refreshing artwork – however not 100% sure I have this one down (as XBMC waits 24 hours between checks)

Preliminary testing also shows that for analog RasPis, PleXBMC will transcode audio properly: voices are intact, the quiet parts are not too quiet, and the loud parts are not too loud on a 5.1 TV show.

Definitely not priority, but it’s on the list 🙂

Navi-X on the Raspberry Pi with hardware accelerated playback

After some initial testing of PseudoTV this morning, I was almost shocked at how well it worked on the RasPi; took less than 20 seconds to schedule (for testing, the library only has some kids shows and a dozen movies), and switching between channels was faster than selecting a video via the iOS remote.

Some audio issues with pops and clicks, and preliminary testing shows that it may mute when switching, but this feels like a good direction in the fight to keep cable off for the summer.

Now is the perfect time to kick start a project to get a very simple Plex client on Linux on the Raspberry Pi.

Similar functionality to the iOS app, and likely based on the work done by the OpenELEC team.

Unfortunately, I am not the person to do it: even the hour or so every few days to work on my own setup is scraping focus from other projects. I know that there are some great people and great teams out here that could find their voice through a project like this, so I’m happy to release it in to the wild. 🙂

Here’s Why:

The release of the Raspberry

  • We’re now passing the 75,000 unit mark.
  • Another shipment of 100,000 is already in the works and set for fall delivery.
  • No signs of slowing down.
  • More similar boards getting in to the game.

x264 Scene releases

  • The groups that allow us to device-shift content we already have recorded chose on Feb 20,2012 to change the encoding from Mpeg4 to x264 on all shows being released.
  • This cuts out a bunch of older device support, and pulls many people towards a new device (Devices left in the dust: Wii, Original Xbox, VCD players, lower-powered computers, and more I’m not thinking of).

Crowdfunding options (See: KickStarter)

  • RasPi has a huge mindshare, not least of which is because of the video showing it running XBMC way back when.
  • Media centres are common, but finding the right client for Plex has been tricky; there’s no Plex box, and as far as I am aware, there is no Plex client on any device that has an RCA video connection in addition to HDMI.
  • I have seen numerous posts about people being willing to pay for something that works.
  • IMO; Plex has the right idea from a user interface and interaction standpoint; MyPlex is awesome, streaming to all devices with synchronized play counts and transcoding when needed? Yes please.

Outsourcing Options

  • It’s easier than ever to hire great developers, there is even an option of having some of the stars of the forums on the payroll through something like odesk.com.
  • Once the UI is pared right down, the basics of the Plex Client make it an attainable short-term goal.

There’s even some money to be made

Sell Pre-loaded SD Cards

There has always been a market for people who take technically complicated solutions and package them in a simple way; selling an accessory kit with two options: “SD” (3x RCA output) or “HDTV” (HDMI), a preloaded (and approved) SD card with automatic updates, and a decent remote.

Even sell just the accessory kits: Partner with a drop-shipper so the only stock to be maintained are blank SD cards, and even that can be outsourced since it’s just a matter of imaging the card, testing it, and putting it in an envelope.

So, what could this look like?

Visually, I think the Plex team has done some amazing work, with a lot of thought behind everything, so I would definitely suggest teaming with them or at least getting their consent to shamelessly rip off the iOS version‘s design.

For functionality, these are some suggestions for starting points:

  • MyPlex Support (find servers and shows the device as a media player so that the plex iphone/ipad app can be used as a remote)
  • Animations to a minimum (700Mhz ARM after all)
  • Intelligence regarding SD card size (<2GB: disable caching by default, 8GB+; cache as much as possible in RAM-friendly formats, etc)
  • PMS needs to transcode audio from some HD files while leaving the video intact (DTS decoding chokes the CPU when it’s not doing passthrough)
  • Free download installer (a la OpenElec or Raspbmc)
  • On-device updates for Plex, and the RasPi kernel
  • And, maybe; access to overclocking profiles from within the advanced settings (changes the config.txt file with a warning of what happens when it’s flaky, as well as how to change it back if the device fails to boot)

Imagine your name in lights, and TVs around the world literally glowing with the work that you contributed to!

Since this is post #1, I’m going to say a few things so you don’t have to hear them later, and for us to set the goals.

Thanks

Thank you to everyone involved in this entire process: all the way from the people who created XBMC years ago, everyone who still commits code to any of the branches and forks, the designers builders and pushers of RasPi, the stars of the forums, and the online communities that they are a part of, the countless people who work unofficially behind the scenes; metadata miners, admin staff, open source software producers of all kinds… The list is really endless, and I won’t pretend to think that I could voice the respect and gratitude that is due to everyone involved.

A special shout out to people who take action in order to make their visions come true; you are inspiring in every moment.

First of all

…this entire blog is entirely as a work station to work towards my ultimate goals; I’m making it public just in case other people find it useful – I’m very open to being told I’m wrong (if you can back it up), or to new avenues of thought that I had not considered.
If some part of you simply wants to be more right than me; use that to fuel your own search, and don’t put any unnecessary energy in to letting me know.

Where we’re going

A Raspberry Pi that sits comfortably connected to the TV, with no extra storage of it’s own, getting all it’s information from another computer on the network.

The ability to watch “TV Channels” (Not live TV, but from the amazing work done by PseudoTV)

The ability to use a physical remote, as well as iPhones, iPads, and any other compatible device

Kid-friendly: All PG13+ material locked away

Repeatable; Anyone should be able to do this by following step by step instructions, and adding additional Raspberry Pis (Raspberries?) should be as easy as getting the parts and plugging them in.

What we have so far

  • CANADA
  • Mini-ITX server with Ubuntu (currently 12.04 headless)
    • Sickbeard on port 8081
    • SABnzb+ on port 8080
    • a VIP subscription to NZBMatrix
    • Software setup with the help of daemox at ainer.net
    • Plex media server, connected to the automated system and serving every other device in the house
    • 4TB of storage (more storage is always a consideration)
  • Raspberry Pi
    • A KICKASS Minecraft style case made out of Lego (Thank you, Seth 🙂 )
    • Class 10, 8GB SD Card (last tested using “hdparm -tT /dev/mmcblk0” at  40.26 MB/sec reads, and 16.36 MB/sec writes)
    • Small, flexible, wired keyboard
    • Logitech travel mouse
  • an Analog TV with (count em!) 2 RCA Inputs
  • an iPhone 4
  • an iPhone 3GS
  • an iPad generation 1
  • a Macbook Pro
  • an old Mac Mini (G4)

Current Opportunities

Right now, the raspberry feels very sluggish. Based on youtube videos of other people running OpenELEC, my performance is similar, but definitely slower.

No physical remote; using the XBMC remote on the iPhone has a nice tactile feel that’s missing in most other remote apps, but it’s still not very happy with the setup. Also, while apps are cheap, handing an iOS device to a 5 year old and doing something else for an hour is not ideal.

Media Scraping is brutal: Using SMB to point OpenELEC to the same folders that Plex uses has a habit of breaking pretty consistently: thumbnail issues, metadata not properly grabbed when the unit crashes as I test different videos never seems to recover, many episodes are missing and don’t re-scrape, etc.

I’m entirely open to the idea that I’m not being patient enough with the scraping, but I have left it overnight on a few occasions.

PLEX: While I’m over-happy the the state of Plex media server, the metadata, how the iOS devices work, and everything else, there’s very minimal work being put towards an open-source linux solution, which means the best we can do right now is PleXBMC.
While the work done on PleXBMC is to be entirely respected, there’s a lot lost in translation: Any remote app does not show the Plex media since Plex media is not pulled in to the library, and it feels very much like XBMC is getting in the way every time I interact with it

I fully expect no one to be reading this in any sort of time frame, so I’m cutting the salutation – go read a post already! 🙂