ARM64/AAarch 64 based SOCs

Thanks to a very responsive development team we now have not only ARM32 but also ARM64 builds for Linux and now Android too. For those of you wondering why this is desirable, this is because both they tend to do better than Intel Core ix systems in terms of both performance per watt and performance per dollar. ARM SOC boards - the Raspberry Pi 3 being the most famous example - are typically extremely cheap, starting at around $40, usually only use a few Watts of power, are are often fan-free/silent. This may be appealing to a many people.

I’ve been testing them across multiple systems from the $46 ODroid-C2 to the $240 HiKey 960, and given some limitations I’m impressed. First, some warnings:

  1. CPU performance: ARM-based systems are almost always underpowered in terms of raw CPU performance compared with Intel systems except for Atom-based ones. The most capable tend to be comparable to Celeron systems, although they are rapidly catching up, thanks to excellent multi-core scalability. This means that commercial scanning and transcoding will be considerably slower than on most intel-based systems unless you have one of the rare system with integrated hardware transcoding.

  2. Drive access: Most ARM SOCs have limited drive options: either eMMC or micro-SD onboard storage, or USB-2 external drives. eMMC or Micro-SD at 512 GByte is expensive. USB-2 is slow, but it seems to be sufficient for TV recording, and so is a reasonable solution as long as you’re not trying to record from >>4 tuners. Exceptions to this rule are coming onto the market, but they’re mostly at the higher end of the market (>~$80).

  3. Network access: An alternative to local drive access is to use network storage. However, many ARM SOCs lack Gigabit ethernet, limiting network drive access speeds, which could impact both NAS performance and the ability to write whilst recording multiple streams from HDHomeRun tuners. Even over Gigabit ethernet, throughput is often bad, especially to NAS system, and can be difficult to get working at speeds necessary to support many parallel streams. I recommend systems with Gigabit networking as a minimum, but you will be able to have limited functionality (maximum number of simultaneous streams) with slower connections.

  4. Many ARM SOCs have extremely limited amounts of RAM, typically 0.5-4 GByte, which can be limiting for working with videos. I would personally avoid anything with <2 GByte, as from experience I know that this causes a bottleneck for x264 transcoding (real-time or other) of 1080i, unless you tweak it a lot. That being said, you might be able to work with 1 GByte which is much more common.

That being said, part of the strength of the Channels DVR system is that transcoding is non-essential, so i’ve been testing out the latest build on a few ARM boards running Ubuntu 16.04. These systems are similar to the Raspberry Pi 3, but with faster processors, 2-4 GB rather than 1 GB RAM and Gbit rather than 100 Mbit ethernet.

All of my comments about performance will be based on the experience of only having run this before on a 2011 Mac Mini with dual core-i5 processors.

Observations of performance on ARM 64-bit boards

  • The ones I have tested all work! This applies to the ODroid C2, both hacked and unhacked NVidia Shield TV and the Firefly RK3399. Setup is much the same as on any other linux or mac-based system. Recording, the most important thing IMO, has so far run without major issues. Note, however, that most of these systems are “cutting edge”, and so typically require a little more work than a PC.

  • The Apple TV interface responsiveness is comparable to when I was running the server on my Mac.

  • Live streaming through the web interface simply doesn’t work on the systems tested, even at 240p, at least if your source is in HD. The system is too under-powered. If hardware transcoding could be implemented in FFMPEG, then it might be possible, but even those systems I tried that on paper had hardware transcoding, sometimes implementable through the difficult-to-use gstreamer software, did not have the software support for it. If you want to transcode from mpeg-2 streams, my recommendation is to do so overnight with an x264-based transcoder (e.g. Handbrake, ffmpeg), using the veryfast encoder preset, and direct stream with something like Plex. I have provided a script for Mac and Linux users that should work for this: https://community.getchannels.com/t/linux-mac-script-for-transcoding-and-adding-to-plex/912/6. The script does not (currently) work with Android systems.

  • Watching a show while you are recording to a NAS (whether NFS, AFP or SMB) is problematic for some systems; It just didn’t seem to get going at all on my ODroid C2 system with a 1st Gen WD My Cloud Mirror. This does not seem to apply to watching a pre-recorded show, and certainly not to watching a stream directly (which I think still bi-passes the server). I suspect this is because of limitations of NAS reading and writing streams in parallel. I tried tweaking my NAS performance, and even though with a single-stream write the bandwidth should have been sufficient (about 20 MBytes/sec) I couldn’t get it to work. Your mileage may vary here, and certainly benchmarking your network drive speeds is critical. Just bear in mind that these RAM-limited systems are not so good at buffering if your bandwidth is erratic.

  • The performance of a USB-2 connected drive (many do now have USB-3), despite being clearly way slower than state-of-the-art, is far more compelling. Even my very basic ODroid C2 was reading and writing at around 35 MBytes/sec, and doing so pretty consistently somewhat independently of how many streams are being utilized; At no time did my net throughput drop below 20 MBytes/sec, which is ~8x faster than the maximum bandwidth of an ATSC HD broadcast (19.4 Mbits/sec, or 2.425 MBytes/sec). I was more than once able to record 4 streams in parallel and watch one of them from the recording all at the same time, and the system remained responsive, although I don’t think I’d have liked to push it any further. As a result, I would say that high speed drive access via SATA or USB-3 is not the top priority for this purpose alone, although if you’re using the system for other purposes you may wish to consider it.

  • Every once in a while a show gets glitchy on the ODroid C2 system, most of the time on ABC, and I’m not sure if this is a software, hardware or local transmission/antenna issue; I’ll report back once I know more, but so far it hasn’t happened on the Firefly RK3399, but that may be due to lack of time using the system.

  • The Gigabit network speed, on the ODroid C2 at least, is more of a bottleneck than the USB read/write speeds, but still sufficient. In tests, I found that it tended to hover in the 16-24 MBytes/sec range, depending on a number of factors, which is disappointing but sufficient. The ODroid-C2 ethernet and USB interfaces appear to be shared, much like it is on the Raspberry Pi, which may provide the explanation; Certainly transfer speeds are well below Gigabit, but also far above 100 Mbps (12.5 MBytes/sec). In any case, you might be pushing your luck if you want to deal with any more than say 4-5 streams at once. Ethernet speeds on the Firefly RK3399 and Nvidia Shield were fine, both for wifi and wired connections, although I would not recommend wifi with HDHomeRun tuners unless you have a fast, little-utilized 802.11ac system and really know what you’re doing.

  • Commercial skipping on the ODroid C2 is far slower than on an Intel system, maybe 1-3x better than realtime. A 1-hr 1080i show took ~30 minutes for me, although there was a lot more going on in that drive. On the Firefly RK3399 with a USB-3 drive it’s much faster; just a few minutes. As a result, you might expect a significant delay after a show has recorded before those commercial marks are in there, and if you use the comskip results for transcoding you might wish to add a significant delay. This appears to be because the implemented version of comskip is only ever running on one core, which is never a good thing on an ARM system which relies on using multiple (typically 4-8) cores for performance. That being said, if, like me, you rarely watch TV on the same night as it’s recorded it is more than ample to avoid a backlog.

Recommendations for people wanting to start with ARM SOCs

  1. Do not expect these to work out of the box as you want. Anticipate having to put in some time to getting them to work, especially if you want to do more than basic play + stream. Also, despite some being advertised as having hardware transcoding capabilities, these are often absent from being supported in reality within Linux/Android, and are specifically unsupported by Channels DVR.

  2. Avoid systems with <2 Gbytes, especially if you want to run Plex or Kodi as well. [I’ve recently discovered that using the veryfast encoder preset reduces the memory footprint, and so 1 GByte may be sufficient, but you might get bottlenecks.]

  3. Avoid slower systems with older cores. My ODroid C2 system uses 4x Cortex A53 cores at 1.5 GHz (although I have found it useful to under clock to 1.3GHz with my transcoding script), which I’d say is barely sufficient; Higher performance A15 (32-bit), A17 (32-bit), A57 (64-bit), A72 (64-bit) and A73 (64-bit) cores are preferable. The Firefly RK3399, for instance, has 2 A72s and 4 A53s, which is far better. You can get some estimate of the relative performance of other systems here: http://www.cnx-software.com/2015/04/09/relative-performance-of-arm-cortex-a-32-bit-and-64-bit-cores/

  4. The web transcoder, or indeed any kind of live transcoder, will almost certainly not work, even with external solutions (e.g. Plex or Kodi), unless you have hardware transcoding that is supported (on ARM systems this is only the Nvidia Shield running Android right now). This is likely to remain the case until ARM GPU transcoding support is more unified under Linux, although some of the newest 8-core systems might stand a chance in the near future. Transcoding over night and then watching them DirectStreamed (again with e.g. Plex) is a better solution for the time being.

  5. For the OS + basic software + Channels DVR, I’ve found that a 16 GB eMMC (or SD card) is sufficient as long as you store recordings externally. If you’re running something like Plex too, and have a large database of recordings, I’d consider upgrading to 32 GBytes or putting the database on an external drive, as it can take up a fair amount of space. Again, you’ll need to store the recordings elsewhere, in my case on an external USB-3 4 TB drive. If you’re running into problems running Plex on such a system, turn off “generate video preview thumbnails”, “generate chapter thumbnails”.

  6. As far as specific hardware suggestions are concerned, together with VERY ROUGH estimates of capability to software transcode relative to the Raspberry Pi 3 (marked as e.g. 3.0X, and for reference typical Intel Core-ix based systems come it at around 2.5-8.0X):

  • (i) Raspberry Pi produces the most popular and well known systems, including the Raspberry Pi 3 (1x). It is adequate for many users, but due to the limited 100 Mbits/sec ethernet and only USB-2 connectivity, it will almost certainly give issues for those who do not need to record/play 3+ or 4+ streams at the same time. You will probably run into issues playing back shows while recording them. In theory it has hardware transcoding to h.264 implemented, but in practice this is unsupported by Channels DVR, and most users report issues with HD streams (both quality and reliability).

  • (ii) ODroid produces some good 2 GB systems. I found the fanless $46 ODroid-C2 (1.25X), to be adequate for my purposes. It also has a similar form factor to the Raspberry Pi 3, so should fit well into a Pi case. You may need to underclock it to e.g. 1.3 GHz to use it fanless (the default), depending on your ambient conditions and whether you’re transcoding locally or not. For those of you that have other software requirements, the $59 ODroid-XU4 (3X) 32-bit board might be a better system given its better throughout (USB-3, better ethernet performance), better software support (32-bit ARM has a larger community than 64-bit) and faster processor speed, including single-core (~2.5x faster comskip compared with C2). It does have a fan, which is not silent, but they now sell fanless alternatives. http://ameridroid.com/ is a good US supplier for both. Finally, the forthcoming ODroid N1, discussed below under RK3399-based systems, looks like it will provide an even greater boost in performance and capability.

  • (iii) Rockchip RK3288-based systems may be slower (2.2X) on paper than the ODroid-XU4, but some (e.g. the Firefly RK3288 Reload ) also come with a SATA port makes it attractive for file I/O, although those are generally not cheap (>$100). A cheaper (~$45) variant is the Asus Tinker Board (2.2X), which has good specs on paper in terms of pure performance per dollar or watt, and does have Gbit ethernet, but lacks SATA or USB-3 support. Despite being 32-bit the should outperform some more common A53 chipsets. As with all Rockchip-based solution, drivers, including graphics, are open source. Gstreamer now supports hardware encoding, although compiling it to work can be challenging unless you have a cutting edge Linux distribution. Unfortunately hardware encoding is still not possible with FFMPEG, and so current solutions for Channels DVR do not presently work for live transcoding.

  • (iv) Rockchip RK3399-based systems are becoming increasingly common, and offer a much wider range of features. Personally I am using a Firefly RK3399 (3.2X) as my main system. It has a typical price of close to $200 ($150 at the moment), which might not be worth it for some, but it does come as part of a full devkit with basic case, cables, PSU, etc… The addition of M2, USB-C and USB-3 ports is particularly compelling, and for an extra $16 you can get an M2 to 2x SATA adapter that makes adding hard drives really easy. The single-core performance is among the best available for ARM systems (estimated 4x faster comskip than the C2). The one downside is the fan, which is far from silent, and does not have the capability to respond to CPU temperatures, meaning that it’s on full power all the time. I have experimented with passive heatsinks (both a regular one, and simply unplugging the power from the stock cooler), and the performance hit for intensive tasks is around 20-25%, with CPU temperatures peaking at around 74 C (acceptable for that chipset). I then tried mounting a much quieter fan on a makeshift case, pointing it at the cooler, and that did a really nice job. Several other manufacturers are starting to bring RK3399 systems to market, and I expect the cost and availability to plummet by the middle of the year. Keep an eye in particular on the ODroid N1 with 4GB RAM and 2x SATA ports at $110, and the Pine64 RockPro64 at 2-4 GM RAM and a PCIe x4 port at $59-$79. The growth of these systems significantly increases the probability that hardware encoding on ffmpeg might soon become a reality, and with some (a lot?) of effort it is possible outside of Channels DVR with gstreamer.

  • (v) Nvidia has been producing the fastest ARM-based boards for a while, which incorporate versions of their graphics cards. All versions of the Nvidia Shield TV (3.75x) with an attached USB-3 hard drive work out of the box now, and is recommended if you do not need to do software transcoding; It also integrates nicely with Plex. If you want to use Linux, then you’ll need the expensive ($600) Jetson TX1 Tegra (also 3.75X) development board or to hack the Nvidia Shield TV (instructions online, but it may void your warranty), and neither offer hardware transcoding of video. Technically there is a version of gstreamer (not ffmpeg, which is used by Channels DVR) on Linux4Tegra that should be able to handle transcoding, but not via FFMPEG which is what Channels DVR uses, and so it would require a fair bit of work to get that running. Right now I do not recommend it.

  • (vi) LeMaker produces some good quality boards, and are also signed up to the 96boards standardization project, which may improve cross-board implementations. In particular, the HiKey 960 shows a lot of potential and on paper at least should be pretty fast, with 3GB RAM, USB-3, and 8 cores - 4x A74 at 2.4 GHz and 4x A53 at 1.8 GHz - which taken together should give Intel Core i3/i5-like performance. At the moment only Android is supported, although it is mainline, which means it should work out of the box without requiring specially compiled versions. Early reports are that the Android kernel (pre-installed) is very non-optimized, and it is falling way short of performance expectations, but given that it only came out this month that’s not completely surprising; Some users have reported significant (if still imperfect) performance gains from flashing with a more recent version. Unfortunately the lack of advancement on Linux support means that I cannot recommend this board yet, and the price ($240) is somewhat prohibitive.

I’ll try to answer any queries people have. It’s the least I can do, given how responsive the Channels DVR devs have been!

-Karl

3 Likes

Update:

I tested recording 4 streams simultaneously. This did not work on my system. 3 streams recorded flawlessly, but one was just an empty file. I suspect it’s a result of the poor bandwidth with the NAS again (20 MBytes/sec according to a recent rest). Will continue to work on this.

Is USB and Ethernet shared on the odroid like it is on the rpi?

It’s Gigabit ethernet, so I don’t think so, but I can’t say for sure.

lsusb shows that the network card is not just a wired in USB device. I am also getting faster read speeds than I would expect from USB-2 at times, although that might be some sort of buffering. Unfortunately I don’t have a Raspberry Pi to compare with.

Tests with four streams to a local hard drive worked fine. USB-2 is more than sufficient. Document edited to reflect this.

Update: I had some problems for a while with my system crashing during heavy (off-line) transcoding with my script on the ODroid C2. Underclocking from 1.5 to 1.3 GHz solved this, and so I suspect that it was more about my specific hardware, rather than a fundamental problem using an AArch64 system of this scale. As a result of the apparent stability, I am now transitioning away from Plex DVR to Channels DVR with the addition of my scripts for Plex integration.

An idea for system hackers that want a fast efficient system is to install Linux on an Nvidia Shield TV. This should give exceptional performance (Jetson TX1 tegra, but with 3 GB rather than 4 GB), complete with an Nvidia Maxwell graphics card, but at a fraction of the cost ($199-$299). A version gstreamer has been compiled to exploit Nvidia hardware encoding, but I have not confirmed the existence of a version of ffmpeg that does. In other words, you should be able to transcode, but maybe not yet with the Channels DVR solution. Caveats:

  1. It will void your warranty.
  2. The ability to install Linux has only been developed recently, and I have no idea if it’s possible on the 2017 model which seems to lack the USB OTG port described.
  3. Also, despite being a 64-bit system with a 64-bit kernel, the OS is compiled with armhf binaries; It works, but it’s a little unusual.
  4. I haven’t heard that anyone has successfully cracked the 2017 model, and the original model is more difficult to come by now.
  5. You will of course lose much of the functionality of the existing system.
  6. Gstreamer is notoriously difficult to use, if you’re intending to set up your own transcoding functions, especially in this rare ARM+NVidia combo. Expect some head-pounding frustration if you want to try this.

I did this myself, but if anyone wants to try it out I can PM them with instructions. They are complex, time-consuming and require extra research to fill in the blanks.

Another approach is to simply root the shield and try to install Channels DVR under Android, but I have never tried that. Just beware that it will be a lot of work re-rooting every time you upgrade your “Shield Experience” (major updates).

Can you link me to this?

FYI the Shield already runs linux, since that’s what powers android. It’s possible to SSH into the device without having to root it (with various apps available), and run the Channels arm binary that way. It mostly works, although there are some issues with DNS resolution which may require us to compile a special binary for the android OS.

I may have spoken too soon. Apparently most are using GStreamer.

I had misread this document’s references to amd64 and arm64:

Will continue to look into it and edit the post.

FYI the Shield already runs linux, since that’s what powers android.

Technically, yes, but it’s a very different flavor of Linux.

I have not discovered how to ssh into the Nvidia Shield TV without rooting it. Could you direct me at a guide? My understanding was you can install the apps, but the Shield firewalls them. Compiling for the Shield has its benefits, but I’ve found there to be too many glitches with the Plex DVR solution on there for it to be reliable.

Would be curious to hear more.

I was able to SSH into the shield using https://play.google.com/store/apps/details?id=berserker.android.apps.sshdroid&hl=en and https://play.google.com/store/apps/details?id=net.i.akihiro.halauncher&hl=en

The Shield TV is great for a limited range of functions when it works, and extremely cost-effective in terms of both transcoding performance for the price and kWh used. However, there have been way too many well-documented problems:

  1. The server just going down for no apparent reason.
  2. The SMB share dropping off.
  3. Poor responsiveness of the ATV app to media being transcoded from the Shield - often it will lock up for 30 second or so during +10/-10 skipping - which is especially frustrating due to the lack of direct comskip support and very limited support of chapters.
  4. Inability to write to or delete from mounted shares.
  5. Annoyingly complex method for backing up the database and files.

This combination is particularly frustrating when it comes to DVR solution. If I use Plex DVR Beta, there is the risk of losing recordings due to (1), and if I want to watch them on the ATV the responsiveness is poor (3). If instead I use an external device/software for recording shows, I can’t reliably add them to the Shield because of (2), or if I add them to a mounted share I don’t have the ability to delete shows from the interface due to (4). Running backups of the shared files is frustrating (5), and although I did eventually come up with a solution involving a curl-based script on my WD My Cloud Mirror, it can of course only back up the server when (2) isn’t being a problem. I have ended up running two instances of Plex server, one on the system with my DVR, and one on the Shield, the sole purpose of which is to transcode for remote laptops and devices, but given that I can transcode/optimize on my external device it seems rather pointless.

There are also some more niggly issues. The current external storage solution is frustrating; If you want to be able to write to it, you pretty much have to lock the drive to the Shield TV system. Also, the Shield TV Plex interface is annoying for fast forwarding/skipping through recorded TV; From my perspective, it’s just not good for day-to-day use, so I prefer to use other clients.

In short, it’s been a frustrating amount of effort for a system that still doesn’t work smoothly. For directly-recorded TV, Channels DVR is already preferable, both due to Apple TV interface and the ability to directly play MPEG-2. The only real downside is the extra cost.

Thanks. We’ve been exploring whether to support the Shield, but have held off due to the reasons you mentioned. Apparently (4) is fixed with the upcoming OS update, so that might make things a bit easier.

It’s a great piece of hardware but, if you’re considering it, I recommend looking through the Plex forums to see what challenges they faced.

Update on boards:

ODroid-C2: My system is running rock solid, regularly recording 1-4 shows at once, and transcoding to Plex much of the time; It remains the best choice for a passively-cooled silent ARM-based system. The throughput on both USB and Ethernet is terrible, but it’s still good enough to prevent bottlenecks for most people. The main glitch I encountered was a clock drift, due to the lack of a hardware clock in this particular system, and something wrong with NTP updates. I did fix it with a simple ntp script, but only after losing the starts of a couple of episodes. You might want to consider boards with hardware/real-time clocks as being preferable, or expect to spend some time checking on how your OS deals with time and date.

I tested Linux4Tegra on the Shield TV, and admit that I struggled to find a way to utilize the hardware encoding. It may be that it can do real-time transcoding using the processors alone, but I don’t think the extra cost and effort is worth it. If someone can get ffmpeg to work on there, I’d change my mind, as it really is nice hardware and on paper at least has the best performance of any ARM-based system.

My primary recommendations at the moment is for 32-bit systems, due to OS maturity and lack of availability of boards with the high-performance 64-bit chips (Cortex-A57 and -A72) in contrast with 32-bit ones (A15 and A17), but still don’t expect them to be able to do real-time transcoding through the Channels DVR web interface. The 8-core ODroid-XU4, which is based on the Samsung Exynos 5422 chip, is top pick, due to its pure processing performance and high throughput with USB-3 and Gigabit ethernet. The new Asus Tinker Board may give better value, if you don’t mind the lack of USB-3, but I haven’t seen any direct reports on it yet. However, with RK3399-based systems just around the corner I will be waiting for those before upgrading, as they should offer far better specs.

2 Likes

Update: Occasionally a show becomes glitchy on the ODroid C2. It’s rare, maybe once every week or two, and only seems to happen on heavy use. In particular, it never seems to have happened with less than 3 shows being recorded at once, so it may be the system becoming overloaded. It’s possible that it’s a local issue, as it does seem to be ABC shows that suffer the most. I’m trying to track the cause, but I can’t say for sure that the C2 running Ubuntu doesn’t have some lingering issues.

I’m about to switch to using a Firefly RK3399 over the next few weeks, and will see if it’s platform-specific.

Update: No glitches for a while, ABC or otherwise, but I haven’t had more than 3 shows recording at once, so the highest recording strain situation (4 shows, whilst watching remotely) did not apply.

A promising new ARM board is soon to come to market, which appears to be way more powerful in terms of raw processing power than anything else currently available short of servers. It’s based on the octa-core Kirin 960 with 3GB ram, and has dual USB-3 and M.2 (M-key) which should be ample for any drive scenarios. There’s no integrated ethernet, but that’s easy to fix with a USB-3 adapter. I estimate that it should outperform a raspberry pi 3 by a factor of 6-7, and may even come close to integrated core-i7 systems for raw processing power, albeit with poorer h.264 hardware encoding (if supported at all). As is usual, it’s a very low power system (the PSU is 24 W), and the starting price is at the high end for an ARM board: $239. Details here: http://www.cnx-software.com/2017/03/04/hikey-960-development-board-powered-by-hisilicon-kirin-960-cortex-a73a53-processor-to-sell-for-239/

Update on ARM boards!

I just upgraded my system from the ODroid-C2 to a Firefly RK3399. The difference is remarkable, largely thanks to the better performing Gigabit network connection and USB-3 hard drive access. Channels-DVR installation went without a hitch, but as usual it’s been “fun” trying to install plexmediaserver and a few other utilities. Everything seems to be running fine, now, though, and transcoding is faster, although still insufficient for live streaming until (as promised by the devs) hardware transcoding is implemented. The one downsize is that the fan isn’t quiet, so I’m going to do some experimentation and try to implement passive cooling soon.

The ODroid XU-4 still looks to provide the best “bang for the buck”, but as the cost of these new boards falls I think we’ll be seeing plenty of competition. I most eagerly await the Hikey 960, though.

Update on the Firefly RK3399:

Everything is running smoothly now. I shan’t post in detail about how to get it running, but if you would like to try it feel free to PM me. Suffice to say that it did require flashing the firmware (not the beta, which introduces more problems) in order to give sufficient disk space for Ubuntu, quite a few software updates, and doing some compiling from source to get it working, which took most of a day. I suspect my lessons learned can reduce that to a couple of hours for most of you, if you are familiar with Linux.

Transcoding & Commercial skipping: Software transcoding with my FFMPEG-based scripts unsurprisingly remains slow; At 720p, roughly 2x the duration of the recordings, so my 3.5 hours of TV last night took 7 hours to transcode, something like 2.5x faster than my ODroid C2. Commercial scanning is at least 4x faster than with the ODroid C2, taking just a few minutes after recording. Live transcoding via the web app does not work, as it is not using the cores efficiently; I anticipate that live SD transcoding should work fine if optimizes correctly.

Purchase details: Note that this board is currently on discount for $179.00 here: http://shop.t-firefly.com/goods.php?id=45. The price is better than it seems, as it comes with quite a few items that are not normally included with development boards (PSU, cables, a crude case). You will of course need a hard drive too (USB-3 supported). Mine came with a fan too, even though it’s not listed, but that may be because I was a Kickstarter supporter, so don’t rely on it.

The noisy fan: My one reservation remains the fan, which is pretty loud, partly because of size/design, but also because the board does not seem to support variable speed in response to CPU temperature. I tried using the fan as a passive heatsink, adding a little thermal paste to improve thermal conduction, as well as an alternative aluminium heatsink provided by Firefly. For routine tasks, the temperature never rose enough to have any impact. However, during CPU-intensive HandBrake tests, with the system housed in a cabinet, it resulted in something like a 20-25% performance drop. It took a few minutes for this to kick in, as the two fastest processors only have their frequencies throttled as soon as they exceed 70 C. This performance drop is pretty acceptable to me, and could be improved with better heatsink design or some air flow (my system is housed in a cabinet). If you want to try similar, bear in mind that the board is a small design and so standard heatsinks will probably not work without major modifications.