Customise Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorised as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.

No cookies to display.

Faster Lossless to AAC Batch Encoding on a Mac (using command line with multiprocessing)

Warning: This script could screw things up. If you don’t feel comfortable with shell scripts, this might not be for you.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/bin/bash
set -e # exit script if control-c is used
USAGE="Usage: convert_to_aac.sh source_dir destination_dir num_processes"
# --- Options processing -------------------------------------------
if [ $# == 0 ] ; then
echo $USAGE
exit 1;
fi
PROCESSES=${3:-2}
# Convert relative path to absolute. Also remove trailing slash
export SOURCE_DIR="$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"
SOURCE_DIR=$(dirname "$SOURCE_DIR/temp") # this fixes . and ./
export DESTINATION_DIR="$(cd "$(dirname "$2")"; pwd)/$(basename "$2")"
DESTINATION_DIR=$(dirname "$DESTINATION_DIR/temp") # this fixes . and ./
convertfile() {
FILE=$1
ORIG_DIR=$(dirname "$FILE")
# Get basename and remove extension
BASE=$(basename "$FILE") # get filename
BASE=${BASE%.*} # remove extension from filename
NEW_DIR=${ORIG_DIR/$SOURCE_DIR/$DESTINATION_DIR}
mkdir -p "$NEW_DIR"
NEW_FILE="$NEW_DIR/$BASE.m4a"
if [ ! -f "$NEW_FILE" ]; then
echo "Converting $FILE to $NEW_FILE"
afconvert "$FILE" -o "$NEW_FILE" -q 127 -b 192000 -f m4af -d aac
fi
}
export -f convertfile
find "$SOURCE_DIR" \( -iname '*.flac' -or -iname '*.m4a' \) -type f -print0|xargs -0 -P $PROCESSES -I % bash -c 'convertfile "%"'
#!/bin/bash set -e # exit script if control-c is used USAGE="Usage: convert_to_aac.sh source_dir destination_dir num_processes" # --- Options processing ------------------------------------------- if [ $# == 0 ] ; then echo $USAGE exit 1; fi PROCESSES=${3:-2} # Convert relative path to absolute. Also remove trailing slash export SOURCE_DIR="$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" SOURCE_DIR=$(dirname "$SOURCE_DIR/temp") # this fixes . and ./ export DESTINATION_DIR="$(cd "$(dirname "$2")"; pwd)/$(basename "$2")" DESTINATION_DIR=$(dirname "$DESTINATION_DIR/temp") # this fixes . and ./ convertfile() { FILE=$1 ORIG_DIR=$(dirname "$FILE") # Get basename and remove extension BASE=$(basename "$FILE") # get filename BASE=${BASE%.*} # remove extension from filename NEW_DIR=${ORIG_DIR/$SOURCE_DIR/$DESTINATION_DIR} mkdir -p "$NEW_DIR" NEW_FILE="$NEW_DIR/$BASE.m4a" if [ ! -f "$NEW_FILE" ]; then echo "Converting $FILE to $NEW_FILE" afconvert "$FILE" -o "$NEW_FILE" -q 127 -b 192000 -f m4af -d aac fi } export -f convertfile find "$SOURCE_DIR" \( -iname '*.flac' -or -iname '*.m4a' \) -type f -print0|xargs -0 -P $PROCESSES -I % bash -c 'convertfile "%"'
#!/bin/bash
set -e # exit script if control-c is used
USAGE="Usage: convert_to_aac.sh source_dir destination_dir num_processes"
# --- Options processing -------------------------------------------
if [ $# == 0 ] ; then
    echo $USAGE
    exit 1;
fi

PROCESSES=${3:-2}

# Convert relative path to absolute. Also remove trailing slash
export SOURCE_DIR="$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"
SOURCE_DIR=$(dirname "$SOURCE_DIR/temp") # this fixes . and ./
export DESTINATION_DIR="$(cd "$(dirname "$2")"; pwd)/$(basename "$2")"
DESTINATION_DIR=$(dirname "$DESTINATION_DIR/temp") # this fixes . and ./

convertfile() {
  FILE=$1
  ORIG_DIR=$(dirname "$FILE")
  # Get basename and remove extension
  BASE=$(basename "$FILE") # get filename
  BASE=${BASE%.*} # remove extension from filename
  NEW_DIR=${ORIG_DIR/$SOURCE_DIR/$DESTINATION_DIR}
  mkdir -p "$NEW_DIR"
  NEW_FILE="$NEW_DIR/$BASE.m4a"
  if [ ! -f "$NEW_FILE" ]; then
    echo "Converting $FILE to $NEW_FILE"
    afconvert "$FILE" -o "$NEW_FILE" -q 127 -b 192000 -f m4af -d aac
  fi
}

export -f convertfile

find "$SOURCE_DIR" \( -iname '*.flac' -or -iname '*.m4a' \) -type f -print0|xargs -0 -P $PROCESSES -I % bash -c 'convertfile "%"'

Digital Audio Playlist:
https://www.youtube.com/playlist?list=PLErU2HjQZ_ZPoumpVxfXEm8-ZiEKlMjnM

Kissarex Wifi 1080P Pan Tilt Zoom Camera

Kissarex Wireless Wifi Pet Camera: Indoor 1080p HD Night Vision Monitoring Motion Dog Home Baby Pan Tilt Zoom Audio Video App Internet Iphone Smart Remote Phone Monitor Security Surveillance IP System (Amazon Affiliate)
US: https://amzn.to/3ehkd2i

Using a 3D Printed Drill Guide

Cheap Amazon 15 Piece Tile Hole Saw Set: https://youtu.be/YMm0hKeDwcQ

“Diamond” Drill Bit Set Hole, 15PCS Hole Saw Set for Glass, Marble, Granite Stone (Amazon Affiliate)
US: https://amzn.to/3rdiYF0

FLSUN Playlist: https://www.youtube.com/playlist?list=PLErU2HjQZ_ZNaTP5phh5oML4EAb80gerF

FLSUN Q5 Delta 3D Printer Φ200x200 Printing Size Auto-Leveling Touch Screen Lattice Glass Platform (Amazon Affiliate)
US: https://amzn.to/3dDwHi5
CA: https://amzn.to/31uw2ea
ES: https://amzn.to/3m7jFwn
FR: https://amzn.to/37onzwR
IT: https://amzn.to/3rBC7QO
DE: https://amzn.to/3l6xb4i
AU: https://amzn.to/2TfTZkK