A Comparison of Video Quality at Different Bitrates

Source Video

The source video was taken with the Insta360 Ace Pro using PureVideo mode at 4K30fps. It’s 28 seconds long and 355 MB in size. HDR was disabled and can’t be enabled in this mode.

I converted that video using Handbrake using the following presets and modifications:

Very Fast 2160p60 4K AV1

This preset maintains the resolution (4K). I set the quality to the lowest option (63). I changed the framerate from 60 to “Same as source”.

Very Fast 2160p60 4K AV1

This preset maintains the resolution (4K). I left the quality at the preset value (35). I changed the framerate from 60 to “Same as source”.

Super HQ 2160p60 4K AV1 Surround

This preset maintains the resolution (4K). I left the quality at the preset value (20). I changed the framerate from 60 to “Same as source”.

Super HQ 2160p60 4K AV1 Surround

This preset maintains the resolution (4K). I set the quality to the highest option (0). I changed the framerate from 60 to “Same as source”.

Here are the results

VideoVideo Quality Setting (CRF)BitrateFile SizeFile Size % of Original
Original106Mbps355 MB
Fast630.5 Mbps1.7 MB99% smaller
Fast354.7 Mbps16 MB95.5% smaller
Super HQ2020 Mbps66 MB82% smaller
Super HQ0 (highest)319 Mbps1092 MB300% larger

According to ffmpeg, when encoding to H.264, a Constant Rate Factor (CRF) value of 17 or 18 is considered to produce visually lossless output. ffmpeg defaults to a value of 23. Looking at the table above, the nearest preset quality CRF value in Handbrake is 20, which produces a video with a 20 Mbps bitrate and an output that is 82% smaller.

To compare video playback quality, you can use GridPlayer to play multiple videos side by side. Of course, if the videos have 4K resolution, you should use a 4K monitor.

LosslessCut to Quickly Extract Good Parts From Long Video Footage

This post will explain how I easily made this short 5-minute 4K video using LosslessCut and VideoStudio Pro.

Short videos like this are handy when you want to condense a lot of video footage into a short video. Unlike 1080p video footage, 4K footage is much larger in file size, so, depending on your computer, editing it can be slow and frustrating. I used LosslessCut to easily and quickly create many short video clips from several large video files. I then used Corel VideoStudio Pro to assemble the clips and add transitions, effects, music, etc.

1. Take Video Footage

I used the Insta360 Ace Pro action camera. This camera has a large flip screen, which made it super easy to get footage on my own using a tripod. The camera has pretty good low-light quality when you choose the PureVideo setting. I took 4K30fps video.

2. Extract Clips From Video Footage

Open your video footage in LosslessCut.

Go to the beginning of the first segment you want to turn into a clip. You can click the play button to play the video or jump to different sections by clicking on the timeline. You can also click the left and right arrow keys to move one frame at a time. Mark the beginning of the segment by clicking the left-finger pointer button. Go to the end of the segment and click the right-finger pointer button. In my video above, I made each clip between 3 and 5 seconds long.

You will see the segment in the right column.

To create a new segment, click the plus (+) button below the segments in the right column. If you want to delete a segment, you can click the minus (-) button.

Repeat this process until you have all the segments you want to export. When you’re ready to export, click the Export button in the bottom right corner. The segments will almost instantly be exported as individual clips without loss of quality.

3. Compress Video Clips

Use Handbrake to batch compress all video clips.

VideoVideo Quality Setting (CRF)BitrateFile SizeFile Size % of Original
Original106Mbps355 MB
Fast630.5 Mbps1.7 MB99% smaller
Fast354.7 Mbps16 MB95.5% smaller
Super HQ2020 Mbps66 MB82% smaller
Super HQ0 (highest)319 Mbps1092 MB300% larger

I used the Super HQ (20) preset since that produced 82% smaller files while maintaining visual quality.

Learn more

4. Assemble Clips in a Video Editor

I used Corel VideoStudio Pro to create my final video.

Import all the clips into VideoStudio Pro. Make sure to enable smart proxy to improve video editing performance.

Since I made a 4K video, I made a poster image that was 3840 px by 2160 px.

For the music, I chose the following

For the transitions, I used Fade to Black. You can choose “Apply current effect to video track” to apply the transition to all clips at once.

For the workout scenes, I added the duotone effect to the clips so the background wouldn’t be distracting.

Drag the Duotone effect thumbnail to the clip on the timeline. You’ll see an “FX” label on the clip.

Here’s how a clip looked before and after applying the duotone effect.

Original clip
With duotone effect applied

When you click on a clip that has the duotone effect applied, you can customize the effect, e.g. by changing the color.

5. Export the Video

After assembling all assets (video clips, music, etc), transitions and effects, click the Share tab to export the video. Make sure the render video properties match the properties of the source video clips to maintain quality. In particular, pay attention to the resolution (3840 x 2160) and bitrate.

Music Management with MusicBee and Omnia

If you have a large collection of music files (mp3, etc) and want to easily manage them on desktop and mobile, you’ll have many apps to choose from. After testing some of the highly rated ones, I’ve (for now) settled on what I think are the two best: MusicBee for desktop and Omnia for mobile. This article will go over how I use these two apps to easily manage almost 2000 songs.

MusicBee

At this time, MusicBee is only available for Windows. Below is a screenshot of my MusicBee instance. The UI is customizable, which is great.

Header Bar

For the header bar, I customized it to have just what I care about, specifically

  • MUSIC (lists all music)
  • PLAYLISTS (lists all playlists in the left panel and all music within a playlist in the middle panel)
  • INBOX (I use this as a temporary staging location when I add new tracks to MusicBee)
  • NOW PLAYING
  • MUSIC EXPLORER (lets you browse by artist, showing albums for each artist)

To edit the header bar tabs,

  • right-click on a tab and click “Close tab” to remove it
  • click the + icon to add a new tab

“MUSIC” Tab

When I click the MUSIC tab in the header bar, I see this:

Left Sidebar

The left sidebar shows a list of all artists. The very first option is “All Artists”. I click “All Artists’ to show a list of all my music files in the middle pane.

Middle Pane

The middle pane shows the filtered music tracks. I customized the columns to just what I care about, specifically

  • Bitrate (I use this to check the encoding bitrate. If a bitrate is too low, I may replace the track with one with a higher bitrate).
  • Time (the song’s duration)
  • Year (the year the song was released)
  • Title (the title of the song)
  • Artist (the name of the song’s artist)
  • Playlist (a comma-delimited list of playlists a song is in)

To change the columns, right-click on the header and click “Set Displayed Fields…”

Bottom Middle Panel

In the middle, below the track list, is an optional pane for editing a song’s properties. I normally enter the following metadata:

  • Title
  • Artist
  • Year
  • Comments (the YouTube video ID if I ripped the song from YouTube)

Bottom Right Panel

In the bottom right panel, you can see a song’s artwork. You can change the article by right-clicking and browsing to an image on your computer. The image should be a square, e.g. 500 x 500 px.

“PLAYLISTS” Tab

When I click the “PLAYLISTS” tab, I see the following:

In the left sidebar, I see a list of playlists. In the middle panel, I see the list of song tracks. To create a playlist or add/remove a track from/to a playlist, right-click on a track, click ‘Include in Playlist”, and either

  • click “<New Playlist>” at the bottom to create a new playlist
  • click or ctrl+click one or more existing playlists to add the song to the playlist(s)

Playlist Format

My music files are all in a single folder called “Music”.

Within that folder, I have a subfolder called “Playlists” containing all my playlist files.

I export my playlists in m3u8 format with relative paths. This allows me to copy my entire “Music” folder, including “Playlists” subfolder” to another device, like my phone or tablet, and the music player on the other device should be able to read my playlists and referenced music files without error.

To set the playlist file format and path preference, click the hamburger menu in the top left corner, then click “Edit Preferences”.

Then, click “Library” in the left sidebar and then select “M3U8” and check the “use relative file paths” as shown below.

Now, if you export a playlist and open the playlist m3u8 file in a text editor, you’ll see relative paths to each song in the playlist like this

Rename, Delete and Export a Playlist

To rename or delete a playlist, click on the playlist in the left sidebar and click the corresponding option.

Omnia

Omnia is now my preferred app for mobile and tablet. It is currently only available on Android.

Omnia is pretty simple and intuitive to use except when you update playlists.

First-time use

When you use Omnia for the first time, tell Omnia where your music and playlist files are.

  1. Click Settings > Music Folders and specify a folder path. Omnia will scan the folder for all music files.
  2. Once the files have been scanned, click on “Songs” tab in the main view to verify your songs are listed.
  3. Then, click on the “Playlists” tab to verify the playlists were loaded. If they weren’t, click on the 3 vertical dots in the top-right corner, click “Import”, click “SELECT ALL’, then check all playlists, and then click the “OK” button.

Subsequent use

If you’ve updated your music file library and playlists, you’ll need to

  1. click on the 3 vertical dots in the top-right corner, click “Rescan Library”, to get updated files.
  2. click the 3 vertical dots to the right of each playlist, and then click “Delete”, to delete the playlists that have been updated
  3. click on the 3 vertical dots in the top-right corner, click “Import”, click one or all playlists, then click “OK” to load the updated playlist.

Workflow

This is my workflow for acquiring music, adding it to MusicBee, and transferring it to Omnia on another device.

  1. Buy a song on Amazon Digital Music ($1 / song) or download a song as mp3 from YouTube using yt-dlp. I store the new files in a temporary “Music” folder.
  2. Edit the song in Audacity as necessary, e.g.
    • trim out start and end silence
    • normalize the volume
  3. Copy the music files to the folder containing all other music files.
  4. Import the new music files into the “Inbox” in MusicBee clicking “MusicBee” > File > ‘Scan Folders for New Files…”

I then specify the folder containing all my music, select “add to inbox”, which is a temporary staging area, and then click “Proceed”.

The new music will appear in the “INBOX” tab in MusicBee.

  1. Edit each song’s metadata (title, artist, year, etc) and add the song to existing playlists
  2. Move (send) the songs from the “INBOX” to the main “MUSIC LIBRARY”.
  3. Export any playlists that have been updated
  4. Connect my other device (phone / tablet) to my laptop
  5. Copy the music files from the temporary folder on my laptop to the external device
  6. Copy the updated playlist files from my laptop to the external device
  7. In Omnia in the external device, rescan the music library, delete and reimport any updated playlists

Tips for Vetting a Licensed Home Improvement Contractor in California

Whether you hire a contractor directly or you are assigned one from your home warranty company, it’s important to check a number of things to prevent regret and liabilities. This is especially important when you are assigned a contractor from a warranty company because, speaking from personal experience, contractors who partner with home warranty companies tend to cut corners and behave unprofessionally, as I have experienced this multiple times.

1. Check License Status

Licensed contractors are registered with the state. Check the status of their license on the Contractor State Licensing Board (CSLB)’s website. It should state whether their license is active, suspended, or revoked. If it’s suspended or revoked, they probably didn’t do a good job and it’s illegal for them to do work they were licensed for, so stay away from them. For example, here’s the contractor page for Loves Air and their license status.

https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=935212

2. Check Classification, Bond, and Worker’s Comp Info

On the contractor’s page on the CSLB website, you should also check the contractor’s work classification, bond, and worker’s compensation info. Here’s an example for Loves Air.

2. Check Online Reviews

If you are looking for a reputable contractor or are assigned one, read their online reviews, e.g. on websites like Yelp. For example, compare the reviews of Loves Air to T N T Heating & Air, both of which are HVAC contractors. Don’t just look at the number of reviews and the average rating. Read past customer comments as well and how the company responds to customers.

https://www.yelp.com/biz/loves-air-salida

This company got 4.9 stars from 286 reviews. With that type of rating, you probably don’t need to read each customer feedback.

https://www.yelp.com/biz/tnt-heating-and-air-ceres-2

This company got only 2.7 stars from 59 reviews. After reading customer comments, it’s obvious that you should stay very far away from this company. Here’s a response from the owner to a customer’s comment. This tone and choice of words says it all.

Unsurprisingly, this company was chosen by many home warranty companies.

4. Check building permit history

Go to your local government (city / county) website and search for building permits associated with the contractor. For example, T N T Heating & Air serves Modesto, Stockton, and other neighboring cities. If I go to the City of Stockton’s Building Permit website, click on Search Permits, and enter the contractor’s license number, I can see the status of all permits for that contractor. If the permit status is “issued”, that just means the contractor successfully submitted a permit application and can begin work. Once the work is complete, the contractor is supposed to schedule an appointment for the city inspector to inspect the work and either approve the work or disapprove of it with a list of things that need to be fixed. If the inspector approves the work, then status changes to “Finaled”. If the contractor never got the work inspector or approved and a certain period of time passes, then the status changes to “Expired permit”.

In the example below, we see that the contractor has 2 “issued” permits, which are recent, followed by 6 expired permits since 2019. This indicates that the contractor likely repeatedly just got a permit issued but never got an approved inspection, which is illegal. This is a huge red flag. Stay away from such contractors.

5. Get Multiple Quotes

Some contractors will give free quotes. Others will charge a nominal fee. Either way, try to get multiple quotes with a clear breakdown of parts, materials, and labor. Sadly, many contractors don’t like to provide a breakdown because it exposes their outrageous markups. Nevertheless, even if you don’t get a detailed breakdown, at least you’ll know at a high level the main things you’d be getting (or not getting). If a contractor’s quote is outrageous or doesn’t make sense compared to other quotes, then you’ll probably want to skip that contractor.

Create a Heavy-Duty Loop / Eyelet at the End of a Wire Rope

If you need to create a very strong and long-lasting loop at the end of a rope, the best practice is to use a thimble along with a fastener. The faster can be a ferrule or rope clamp.

Ferrule

Wire rope is preferred because it is much stronger than non-wire rope like nylon, polypropylene, paracord, etc.

The benefit of a rope clamp is you can unlock the clamp and reuse the rope for something else. Also, you just need pliers to tighten the clamp nuts. The benefit of a ferrule is its small size and permanent nature. However, you would need a special crimping tool. Ideally, you would use a hydraulic crimping tool.

Hydraulic crimping tool

One tricky part when creating such a loop is getting the thimble to be snug and tight. Following is one way to do it, which worked for me.

First, make sure you use a thimble that is the right size for the wire rope you are using. In the example below, the wire rope is 1/8′ thick, so the thimble is for that size rope. If you use a smaller thimble, I found it harder to get the thimble tight and snug.

Slide the rope through the ferrule to create a loop. Then, clamp the rope using locking pliers as shown above.

Next, insert the thimble and pull the ferrule toward the thimble until it touches the thimble. If you are having difficulty making the ferrule and thimble stay touching each other, try making the short end of the rope longer.

Insert the correct size die for the ferrule in the crimping tool, then insert the ferrule in between the dies within the tool to clamp it. Follow the instructions to clamp the ferrule. Before clamping, ensure the thimble and ferrule are still touching each other for a permanently tight fit.

Clamp down multiple times as hard as you can. When do, turn off the hydraulic crimper to release the clamp.

You’ll see that the crimping crimped the ferrule, creating a permanent clamp.

Trim excess wire rope using a wire rope cutter.

Encyrpt/Decrypt Files/Messages with GPG

Let’s say that you have a very confidential message or file that you want to share with someone and you absolutely don’t want anyone else to be able to see it. Most people would just share the message via email or some other communication tool, but this isn’t necessarily secure, especially since the tool provider, like Gmail, could access your email communications. When you want to be 100% sure that only your recipient can view your message, the best practice is to encrypt/decrypt it using GPG.

Encryption Variations

Pretty Good Privacy (PGP) is a proprietary encryption program that provides cryptographic privacy and authentication for data communication.

OpenPGP is a non-proprietary, open-source version of PGP.

GnuPG (Gnu Privacy Guard / GPG) is a non-proprietary, open-source version of OpenPGP.

GpgFrontend

This post will show you how to share secret messages with a friend by encyrpting/decrypting them using GPG. There are many tools that can encrypt/decrypt messages using GPG, including command line tools. I will use GpgFrontend because it appears to be the easiest for the general public to use. For this tutorial, I will use Windows.

1. Download the GpgFrontend

Both you and your friend will need to perform this step.

You can download the Windows installer or the portable version that doesn’t require installation. For simplicity, I will just download the portable version.

  1. Download the portable version from GpgFrontend’s latest releases, labeled GpgFrontend-*******-windows-x86_64-portable.zip.
  2. Extract the contents of the downloaded ZIP file.
  3. Run GpgFrontend.exe from the extracted Program/bin directory.

2. Generate a Key Pair

Your friend will need to perform this step.

Open GpgFrontend

Click on “Manage Keys”.

    Click “New keypair”.

      Fill in your details, such as name and email, and choose your desired key type and size. You can also add a comment if you wish. Set an expiration date for the key, or choose ‘Never Expire’ if you prefer. Optionally, create a passphrase for added security. I will click the Non Pass Phrase checkbox for simplicity. Once all details are filled in, click ‘OK’ to generate your key pair. You will then see your key listed in the KeyPair Management window.

        3. Share Public Key

        Your friend will need to perform this step.

        In the KeyPair Management window, select the key you want to export, right-click, and click “Show Key Details”.

        Click the “Operations” tab, then click the “Export Public Key” button.

        Save the public key somewhere on your computer. For me, the filename generated was David[email protected]_pub.asc. The “pub” stands for “public” because this is your public key that you can share with other people. If you open the public key file, it will look something like this.

        Your friend should send you this file so that you can use it to encrypt your message.

        4. Import Public Key

        You will need to perform this step.

        Click “Import Key” -> “File” and browse to the public key file your friend shared with you.

        Click the OK button to confirm importing the key.

        5. Encrypt a Message

        You will need to perform this step.

        Write a message in the main text area of GpgFrontend.

        Check the public key in the list of keys in the Key Toolbox pane. To do this, click in the leftmost column of the key you want to use, outlined in red in the screenshot below.

        Click the “Encrypt” button. You will see that your plaintext message was converted to a PGP message.

        6. Share the Encyrpted Message

        You will need to perform this step.

        Copy the encrypted message and share it with your friend, e.g. via email.

        7. Decrypt the Encrypted Message

        Your friend will need to perform this step.

        Copy the encrypted message into GpgFrontend’s main text area.

        Click the “Decrypt” button. You’ll see the encrypted message get converted to plain text.

        With GPG, you can do many other things as well, including

        Learn more

        Quick and Easy Cucumber Salad

        Most salads contain multiple vegetables and leafy greens like lettuce, tomatoe, and onion. The problem with some of these ingredients is they go back fairly quickly, especially lettuce, which becomes slimy, discolored, and smells. Grape tomatoes tend to wrinkle and look unappetizing. One vegetable, however, seems to stay and look fresh for about 2 weeks – cucumbers. Cucumbers are also high in water content, which can help you feel full and eat less. They are also low in carbohydrates and sugar, and have a low glycemic index (GI). This means that cucumbers don’t cause a rapid increase in blood sugar.  They can be a good snack for people who want to lose weight or maintain a healthy weight. 

        Here’s a simple recipe for a cucumber salad.

        Ingredients

        • Cucumber (1)
        • Water (1/2 cup)
        • Salt (1 tsp)

        Instructions

        1. Pour water in a bowl
        2. Add the salt and mix till dissolved
        3. Slice the cucumber, add to bowl and mix

        Leverage Gym Exercises

        A leverage gym is one of the most versatile exercise machines available. They are perfect for a home or garage gym due to their small footprint. Some of the leverage gyms currently available in the market are

        Powertec Workbench LeverGym

        This machine costs $1600. One of its advantages is you can add attachments to the end of the bench for an additional cost to do additional exercises like bicep curls, leg curls, chest flys, etc.

        Learn more

        Syedee Leverage Gym

        This machine costs $900. If you buy it without the bench, it costs $700. This is great if you already have a bench or if you want to buy a better bench like the Keppi Weight Bench 1000 Pro.

        Learn more

        Exercises

        Note: not all leverage gyms can do all of the exercises below.

        Incline Chest Press

        Alternating Incline Chest Press

        Flat Bench Press

        Alternating Flat Bench Press

        Hammer Grip Flat Bench Press

        One Arm Pectoral Fly

        Deep Push Ups

        Dips

        Shoulder Press

        Alternating Shoulder Press

        Shrugs

        Standing Shoulder Press

        One Arm Side Raise

        One Arm Rear Delt Raise

        Upright Row

        Bent Over Row

        One Arm Bent Over Row

        Reverse Grip Bent Over Row

        Under Bar Row

        Wide Grip Lat Pull Down

        Close Grip Lat Pull Down

        Reverse Grip Pull Down

        Standing Straight Arm Pull Down

        Seated Cable Row

        Reverse Grip Cable Row

        Single Arm Lat Pull

        Climber Grip Pull Up

        Wide Grip Pull Up

        Close Grip Pull Up

        Hammer Grip Pull Up

        Monkey Grip Pull Up

        Full Squat Movement

        Band Resisted Squat

        Reverse Lunge

        Calf Raise

        Partial Stiff Legged Dead Lift

        Hip Thruster

        Abductor Cables

        Kick Back

        Adductor Cables

        Squat Press Over Head

        Low Cable Bicep Curl

        One Arm Concentration Curl

        Seated Bicep Curl

        Standing Tricep Push Down

        One Arm Tricep Push

        Standing Abdominal Crunch

        Standing Side Crunch

        Straight Leg Knee Raise

        Twisted Knee Raises

        Super Easy Slow Cooker Shredded Salsa Chicken

        This was super easy to make and it was very flavorful. Eat it as is or as part of a burrito or over a plate for rice.

        Ingredients

        • 1.25 lbs Chicken (I prefer chicken thighs because chicken breast is too dry)
        • 1 oz Taco Seasoning Mix – Low Sodium (I actually used a chicken taco seasoning mix but any would do)
        • 16 oz Salsa – Your choice of flavor and heat (I chose Del Real, Red Salsa, Fire Roasted. It was a bit spicy though)

        Instructions

        1. Cut up/trim the fat off the chicken, if needed
        2. Place the chicken into the bottom of your slow cooker
        3. Sprinkle the Taco Seasoning Mix all over the chicken
        4. Pour the salsa over the chicken
        5. Mix everything
        6. Put the lid on and let it cook on low heat for 4-5 hours or high heat for 2-3 hours (the chicken should reach 165F/73C)
        7. Optionally, shred the chicken 15-20 minutes before it’s done by using 2 forks or meat shredding claws

        High-Protein Scrambled Steak ‘n Eggs

        This dish contains 52 grams of protein and 500 calories.

        Ingredients

        • 4 x eggs (24g protein, 312 cal)
        • 1/2 cup low-fat cottage cheese (12g protein, 80 cal)
        • 1 x Steak-eze patty (16g protein, 110 cal)
        • 1 or 2 handfuls of fire-roasted veggies
          • Trader Joe’s Fire Roasted Bell Peppers and Onions
          • Pura Vida Fire Roasted Vegetable Melange
        • Salt and pepper

        Instructions

        1. Spray cooking oil on a medium pan and heat on medium
        2. Place patty and bell peppers and onion in the pan
        3. Sprinkle on some salt and pepper
        4. After 5 minutes, flip the patty
        5. After 5 minutes stir
        6. Combine the eggs and cottage cheese and blend
        7. Pour the eggs and cottage cheese blend into the pan
        8. Stir occasionally until desired consistency
        9. Enjoy