Linux & CLI 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
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
Convert entire folder
for i in *.mov;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" "${name}.mp4"
done
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
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
Convert PNG to Icon
first convert to 256
convert input.png -resize 256x256 output.png
last convert to icns
png2icns output.icns input.png
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" />
Raw to JPG
ufraw-batch --out-type jpeg *
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
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
];
};
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"
'';
}
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'