Linux & CLI Commands

FFMPEG Commands

FFMPEG Commands

Cropping

Center Crop for Instagram:

ffmpeg -i ParticleSensor.mp4 -vf "scale=(iw*sar)*max(1080/(iw*sar)\,1080/ih):ih*max(1080/(iw*sar)\,1080/ih), crop=1080:1080" ParticleSensor_ig.mp4

 

 

FFMPEG Commands

Web Convert

OGV:
in_old = "path_to_vid.mp4"
new = ${in_old%.*}.ogv
ffmpeg -i $in_old -codec:v libtheora -qscale:v 6 -codec:a libvorbis -qscale:a 6 $new
MP4:
ffmpeg -i Web*.mov -an \
  -vf "scale=1920:-2:flags=lanczos,fps=30" \
  -c:v libx264 -preset slow -crf 22 \
  -pix_fmt yuv420p -profile:v high -level 4.1 \
  -g 120 -bf 2 \
  -movflags +faststart \
  frontvideo01.mp4
FFMPEG Commands

Convert entire folder

for i in *.mov;
  do name=`echo "$i" | cut -d'.' -f1`
  echo "$name"
  ffmpeg -i "$i" "${name}.mp4"
done

 

FFMPEG Commands

Hardware encoding

Intel example command:

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i "${invid}" -codec:v h264_vaapi ${invid%.}_testHW.mp4

FFMPEG Commands

For Website Looping Video

ffmpeg -ss 10 -i $INPUT -t 5 -'min(350,ih)':force_original_aspect_ratio=decrease,pad=550:350:(550-iw)/2:(350-ih)/2" -c:v libx264 -an -preset veryfast -crf 28 output.mp4

 

 

Images and PDFs

Images and PDFs

Convert PNG to Icon

first convert to 256

convert input.png -resize 256x256 output.png

last convert to icns

png2icns output.icns input.png
Images and PDFs

PDF to one image


convert in.pdf +append out%d.png

sudo apt install imagemagick

If convert is broken, update policy:

# Open the file 
sudo nano /etc/ImageMagick-6/policy.xml

# find and edit the line
<policy domain="coder" rights="none" pattern="PDF" />
# to :
<policy domain="coder" rights="read|write" pattern="PDF" />
Images and PDFs

Raw to JPG

ufraw-batch --out-type jpeg *

DistroBox

DistroBox

Install Ubuntu in distrobox

Install Docker first:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Post Docker install:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Then setup Distrobox and Container:
sudo apt install distrobox && distrobox create --image ubuntu:22.04 --name ubuntu && distrobox enter ubuntu


NixOS

NixOS

Tailscale

 services.tailscale = {
    enable = true;
    openFirewall = true;
    authKeyFile = path-to-key;
    extraUpFlags = [
      "--login-server=https://your-instance" # if you use a non-default tailscale coordinator
      "--accept-dns=false" # if its' a server you prolly dont need magicdns
    ];
  };
NixOS

Tidal-dl-ng Shell

nix-shell tidal.nix (or whatever you call this file)

{ pkgs ? import <nixpkgs> {} }:

let
  pythonEnv = pkgs.python3.withPackages (ps: with ps; [
    pip
  ]);
in
pkgs.mkShell {
  name = "tidal-dl-ng-shell";

  buildInputs = [
    pythonEnv
    pkgs.ffmpeg
  ];

  shellHook = ''
    python -m venv .venv
    source .venv/bin/activate
    echo "🎵 Tidal-dl-ng environment ready."
    pip install python-ffmpeg
    pip install tidal-dl-ng
    echo "Ready to rock. Available command: tidal-dl-ng"
  '';
}

NixOS

Take Screenshot of Remote Machine

nix-shell -p xorg.xwd imagemagick --run 'sudo DISPLAY=:0 XAUTHORITY=/run/lightdm/root/:0 xwd -root -silent | magick xwd:- /tmp/screen.png'

Admin