Monday, October 26 2020, 01:50 pm

Upgrading my viewing experience for 4K

The world has been slowly transitioning to "4K" video for the past 5 years. The leap from 1080p "Full HD" (FHD) to 2160p "Ultra HD" (UHD) is riddled with a few alternative sizes, codecs, and optional features. After playing the waiting game long enough I felt it was finally time to upgrade my HTPC that powers my main media consumption to support the new media formats.

Origin Story

Almost eight years ago today on November, 2012, I purchased my original home theater PC (HTPC). The target was something that would play 1080p FHD video and audio through an HDMI connection. I'll also list the original purchase prices from that time.

  • Motherboard: ASUS P8Z77-I DELUXE (Mini-ITX) - $179.99
  • CPU: Intel Core i3-3225 (3.3Ghz Ivy Bridge, 2-core, 4-thread) - $129.99
  • RAM: 2x4GB G.Skill DDR3-1600 CL9 1.25v - $42.99
  • Total: $352.97 ($0 sales tax)

At the same time I also had to buy the mini-ITX case, SSD, and slot-load blu-ray drive, but those are still in use today. This system was capable of playing the most common video codec of the time, H.264, but that codec is being slowly phased out for the future alternatives of H.265, VP9, and AV1. The i3 CPU can only offload H.264 processing so some, high quality "4K" media using H.265 or VP9 would stutter on playback.

The Upgrade

  • Motherboard: Gigabyte B450 I AORUS PRO WIFI - $119.99
  • CPU: AMD Ryzen 5 3400G - $134.99
  • RAM: 2x8GB Crucial DDR4-3600 CL16 1.35v - $74.99
  • Total: $357.19 ($27.22 sales tax)

So for roughly the same price (or cheaper sans sales tax and inflation) I was able to get a "4K"-ready replacement system. The motherboard and CPU are HDMI 2.0b compatible so I should be able to play any current "4K" media. The CPU can offload processing of H.264, H.265, and VP9. All 4K media I have thrown at it has played smoothly as expected. The AV1 codec will be supported in 2021-2022 CPUs, but if it is anything like the adoption rate of H.265 it will be a few years before it is in widespread use.

Benchmarks

An ulterior motive for the upgrade was to also be able to play a few games. The i3 could play very basic games, or I could use Steam remote play, but I wanted something more robust. The 3400G provides that. All benchmarks used the same SSD so software was identical. Fedora 32 was the base OS and was fully updated as of October 23, 2020. Base software: Kernel 5.8.15, Mesa 20.1.10.

Unigine Heaven
  • Resolution: 1920x1080
  • Quality: High
  • FSAA: Disabled
  • Tesselation: Disabled

htpc-unigine-benchmark-2020.png, Oct 2020

VA-API

Test File: 1980x1080, 60FPS, 14Mbit H.264 Video, 13 minutes long vaapi-benchmark-2020.png, Oct 2020

Power Utilization
  • Core i3 System - Idle: 32 watts
  • Ryzen 5 System (Overlocked) - Idle: 21 watts
  • Core i3 System - FHD Movie: 38 watts
  • Ryzen 5 System (Overlocked) - FHD Movie: 30 watts
  • Ryzen 5 System (Overlocked) - UHD Movie: 39 watts

Sunday, February 9 2020, 07:46 pm

Race Car 2.0 Build Log - 2006 BMW M3

Race Car 1.0 was in my possession for almost 10 years until a road accident totalled it. Version 2.0 is built upon previous knowledge and newer products now available. The following lists and photos detail building the new car from stock back to a track ready vehicle.

New parts list

  1. Autopower Race Rollbar
  2. MCS 2-way adjustable coilovers w/ true rear coilovers
  3. Front: 600lbs / Rear: 350lbs Hypercoil 2.25" springs
  4. DIFtech Camber Plates
  5. Turner Motorsport Monoball FCABs
  6. Bimmerworld v3 Brake Lines w/ heat shielding
  7. Castrol SRF Brake Fluid
  8. Redish Subframe Reinforcement
  9. CMP RTABs
  10. CMP Raising Subframe Bushings
  11. Bimmerworld Premium Studs 82mm
  12. Brake Ducting (3" Orange, 450 degree rated)
  13. eBay Chinese Fog Light / Brake Duct bumper mounts
  14. Custom CNC generated rear shock tower reinforcement

Used parts list

  1. Status race seats
  2. PCI race seat slider mounts
  3. 6 point Schroth Profi II harnesses
  4. OEM Euro headers (ceramic coated)
  5. Brake duct plates
  6. Braided stainless high pressure power steering line
  7. Ground Control Race Front Sway Bar
  8. Turner Motorsport Rear Control Arms
  9. 18x10 CCW Corsair wheels w/ Pirelli DH slicks

Work list

  1. Gutted fiberglass from stock muffler and welded plates over perforated pipe sections
  2. Power steering flush
  3. Brake fluid flush
  4. Differential fluid flush
  5. Flash custom tune built with hex editor and XDF files/Tuner Pro
 

Post-Installation Gallery

Friday, January 12 2018, 10:23 am

Calm the hysteria, security patch performance is OK

Unfortunately some bad benchmark data has caused a stir among the greater Internet community. I have chosen to perform my own independent benchmark tests to see if the security patches for Meltdown and Spectre introduce any harm to my everyday life. TL;DR: They don't in the slightest.

Continue reading...

Wednesday, February 18 2015, 06:15 pm

Linux is [Unfortunately] About Choice

Ask anyone to name things they find wrong with the Linux ecosystem. I expect you'll get responses along the line of:

  • GNOME sucks
  • KDE sucks
  • GCC sucks
  • Firefox sucks
  • GPLv2 sucks
  • RPM sucks
  • Gaming sucks


What's the solution most commonly found? "Fork it, bro!"

Forking software is a legitimate reason under specific circumstances:

  • Licensing
  • M.I.A. upstream


Successful, legitimate forks:

  • LibreOffice
  • MariaDB
  • X.org


Forking is not a clear right to do anything you want such as creating a new distribution with a new, cool name and flashy art logos. Bad forking reasons:

  • I want to make a name for myself
  • I want a different desktop environment
  • I want a different desktop wallpaper


"Why not? I certainly am going to fork it!"

Yes, there is enough software produced for one person to be able to quickly and easily create an ISO file for users to download and call a new distribution. Before you say, yes, ask yourself these questions:

  • Do I have at least 5 people to provided a full-time job's worth of time to it?
  • Do I / they have enough time to apply security patches and / or update to the latest upstream version for a majority of the software?
  • Do you serve a product that provides a clear purpose other than a new desktop or flashy art?


All it takes is one "no" answer to put an end to your forking dreams. Just Don't Do It.

Monday, February 16 2015, 05:00 pm

Passion in Business

Suppose we live in a perfect world where everyone is content and their every need is satisfied. It doesn't exist. Our planet runs on consumerism. "Business as usual." What's keeping us going? That threat of no job? No money to buy cigerettes and beer?

Workers clock in for their 8 to 5 shift at the same time and clock out like no tomorrow will be different. They follow meetings and schedules and policies as if they have been set in stone since the dawn of time. Without question and without opinion.

Countless pieces of rhetoric have touched on this subject so it may seem redundant or frivolous, but I digress because if it was no longer an important issue we would no longer be talking about it. (See: Fight Club, The Matrix, THX 1158)

I propose a new purpose in the workplace. When you're given a task try to think about all of the possibilities that could be drawn from it. Positive and negative conclusions can drive the project into a direction that makes sense. More nay-sayers and less yes-men.

Find a more efficient way to use your time? Speak up!

Saturday, June 28 2014, 07:47 pm

Ugly Cars Olympics

The following vehicles are so ugly that I cannot post photos of them as they would otherwise tarnish this fine establishment. Just image search if you have been living under a rock.

Bronze: 2000-2010 VW Beetle

What started off as an economical and functional car (see 60s Beetle) ended up being a marketing tool to drive sales. This must be the most plain vehicle ever designed. Its symetrical body leaves nothing to the imagination. If you're caught driving one your masculinity will be in question.

Silver: Chrysler PT Cruiser

An original design that was never warranted. Undoubtably the people in Detroit that put this monstrosity together all patted themselves on their back as it sold more than it ever should have. Is it a "beach-going" car? Is it a "fun-economical" car? Neither. It looks best in a car crusher.

Gold: Pontiac Aztek

Without contest, the Aztek takes gold. It's received countless commedations across numerious publications for being butt ugly. Amazingly there are individuals who have paid with their hard-earned money for one of these. I would love the opportunity to interview an owner and find the source of their desire for the ugliest car on the planet. It would be a sincere and cordial interview of course.

Friday, April 18 2014, 07:00 pm

Dressing to Unimpress

Contrary to popular belief the purpose of church is to further educate your spirit and renew your faith in God. When people worshipped in temples that had bare earth for a floor and stone for benches they did not bear silk dresses or kahki slacks. Gathering for worship should be a casual encounter and not a date with Christ. I call upon Christians to keep their fancy attire locked in the closet and attend each Sunday with their everyday clothing (if it is a suit, so be it!).

My reasoning for my feelings? A touch of a sense of biggotry with a dash of vanity. We're taught to be humble and love one another. There are those that do not have the benefit of a Sunday outfit and we should not exclude anyone by an unspoken expectation of one. A change of dress code would do us all a little good as church has become too much of a social function instead of a spritual one.

Friday, August 24 2012, 09:10 pm

Third Times the Charm

I am putting in the call now. The Texas Rangers must win the World Series this year. The team has finally clicked and is firing on all cylinders. For most of the season they have flirted with the best record in the AL or MLB. They post high or first in the power rankings. No one else in the AL seems to be much of a threat unless Tamba Bay the Athletics keeps up their offense. I don't know what to make of the Reds or Nats in the NL until we face them in the WS, but I don't believe they are as good as us.

Why the urgency? I have a feeling after this year that the players entering free agency will part ways. Yes, the dugout is friendly and everyone are good friends but my instinct tells me Hamilton will depart for a larger contract. Other names may leave as well. This year is the year this team needs to win it all.

Thursday, December 22 2011, 07:09 am

Crossing the Streams to the Playstation 3 (part 2)

Lets say you have downloaded some TV shows. I won't ask where you got them, but I will show you how to play them on the PS3 through Mediatomb. This will require the patches mentioned in the part 1 post as video playing is pretty stupid without them.

First off, Mediatomb needs to know what to do with .mkv files on your computer. The PS3 has no idea how to play Matroska containers unfortunately. It would be a simple and free (as in speech) for Sony to implement, but that's too hard for them to do without money or IP rights in their favor. The following settings will tell Mediatomb to stream MKV files as MPEG files and use ffmpeg to transcode.

/etc/mediatomb/config.xml

<extension-mimetype ignore-unknown="no">
    <map from="mkv" to="video/x-matroska"/>
    ... other maps already exist, don't delete them ...
</extension-mimetype>
... skip down to the <profiles> tag and add this block...
<profile name="video-matroska" enabled="yes" type="external">
    <mimetype>video/mpeg</mimetype>
    <accept-url>no</accept-url>
    <first-resource>yes</first-resource>
    <hide-original-resource>yes</hide-original-resource>
    <agent command="ffmpeg-tr" arguments="%in %out %range" />
    <buffer size="10485760" chunk-size="524288" fill-size="0"/>
</profile>

The following are a few "ffmpeg-tr" script file examples. Ffmpeg has a few options as I have come to find out that the PS3 is a bit picky at video encodings. If you do not have a flawlessly encoded file the PS3 will most likely not play the file.

The first example will require a fast machine (at least 4 cores) as it reencodes the video into a fresh H.264 stream and leaves the audio intact. Use this if the video file you have is skipping or not even playing on the PS3.

/usr/local/bin/ffmpeg-tr

#!/bin/bash

START_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[1]}'`
MILLISECONDS=`echo "$START_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
START_TIME=`echo $START_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
START="$START_TIME.$MILLISECONDS"
END_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[2]}'`
if [ -z $END_SECONDS ]
then
MILLISECONDS=`echo "$END_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
END_TIME=`echo $END_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
END="$END_TIME.$MILLISECONDS"
fi

exec /usr/bin/ffmpeg -threads 4 -r 24000/1001 -i "$1" -vcodec libx264 -b 8000k -preset faster -level 41 -r 24000/1001 -vsync 1 -acodec copy -async 1 -f mpegts - > "$2"

If your video file is in good shape, then you can get away without encoding anything. Most .mkv files are already in video formats the PS3 will play (h.264 video, AC3/Dolby audio) so you can get away with a direct copy of the data. This requires very little computing power so any computer can do this.

/usr/local/bin/ffmpeg-tr

#!/bin/bash

START_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[1]}'`
MILLISECONDS=`echo "$START_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
START_TIME=`echo $START_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
START="$START_TIME.$MILLISECONDS"
END_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[2]}'`
if [ -z $END_SECONDS ]
then
MILLISECONDS=`echo "$END_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
END_TIME=`echo $END_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
END="$END_TIME.$MILLISECONDS"
fi

exec /usr/bin/ffmpeg -threads 4 -i "$1" -vcodec copy -vbsf h264_mp4toannexb -acodec copy -copyts -copytb -f mpegts - > "$2"

You can also mix and match between re-encoding audio only or both video and audio.

Tuesday, October 18 2011, 09:57 pm

Crossing the Streams to the Playstation 3 (part 1)

I wish I didn't have to write this article, but when there's a dozen audio formats, a dozen video formats, and a dozen media containers there's only one result: headaches. If you own a Playstation 3, a Linux computer, and have Mediatomb installed, you can take advantage of the UPnP feature on the PS3 to play your audio or video over the network. This part 1 of 2 posting will start with audio.

FLAC to PCM

The Playstation 3 is a funny thing when it comes to audio. If you only have Optical (TosLink) or Coax audio output you're stuck with 48kHz sample rate. If you have HDMI you can go higher. The example below will get you FLAC transcoding into 48kHz PCM that the Playstation 3 will play.

/etc/mediatomb/config.xml

<profile name="audio-flac" enabled="yes" type="external">
   <mimetype>audio/L16</mimetype>
   <accept-url>no</accept-url>
   <first-resource>yes</first-resource>
   <hide-original-resource>yes</hide-original-resource>
   <accept-ogg-theora>no</accept-ogg-theora>
   <sample-frequency>48000</sample-frequency>
   <audio-channels>2</audio-channels>
   <agent command="ffmpeg-flac" arguments="%in %out" />
   <buffer size="4194304" chunk-size="262144" fill-size="0"/>
</profile>

/usr/local/bin/ffmpeg-flac

#!/bin/bash

exec /usr/bin/ffmpeg -threads 2 -i "$1" -ar 48000 -acodec pcm_s16be -f alaw - > "$2"

Why 48kHz? I have some 96kHz media so I'd rather it go to the PS3 at the best possible rate. The PS3 will resample to 48kHz if you choose to go with 44.1kHz anyway so you might as well go with 48kHz. You can up this to 96kHz on an HDMI connection, but I don't have one to test with.

Extra Credit

Mediatomb development does not seem very active, but some folks have made patches to add features that make streaming more enjoyable. One annoying part of streaming on the PS3 is the default grey music icon for your tracks. This can be replaced by the album art with patch number one. You can't seek in tracks either, but that is also negated with patch number two.

Coming up: Transcoding matroska containers into the best possible format.

- page 1 of 6