Skip to content

Instantly share code, notes, and snippets.

@josuecau
josuecau / ffmpeg_add_srt.sh
Last active August 20, 2020 07:10
Using ffmpeg in Docker to add srt subtitle files to mp4 files
#!/usr/bin/env bash
#
# Using ffmpeg in Docker to add srt subtitle files to mp4 files
#
# https://mutsinzi.com/add-srt-subtitles-to-quicktime/
# https://hub.docker.com/r/jrottenberg/ffmpeg
# Given the following directory structure:
# .
# ├── in
#!/usr/bin/env bash
# List the most frequently used words in a text.
[ $# -ge 1 ] && [ -f "$1" ] && input="$1" || input="-"
# shellcheck disable=SC2002
cat "$input" |
tr -cs '[:alpha:]' '\n' | # Split words and drop non-alphabetic characters.
tr '[:upper:]' '[:lower:]' | # Put it all to lowercase.
@josuecau
josuecau / options-avanced.sh
Last active December 25, 2019 07:45
Parse bash command options with getopt(1)
#!/usr/bin/env bash
# “a” and “arga” have optional arguments with default values.
# “b” and “argb” have no arguments, acting as sort of a flag.
# “c” and “argc” have required arguments.
# getopt bin
getopt=/usr/local/opt/gnu-getopt/bin/getopt
# set an initial value for the flag
@josuecau
josuecau / wait.js
Created December 2, 2019 17:08
JavaScript setTimeout as a Promise
module.exports = delay => new Promise(resolve => setTimeout(resolve, delay))
@josuecau
josuecau / gist:756ae0369d0016b965f1e55e0f73ce93
Created November 5, 2019 16:22
Nommage des fichiers avec MusicBrainz Picard
$if2(%albumartist%,%artist%)/$if($ne(%albumartist%,),%album%/,)$if($gt(%totaldiscs%,1),%discnumber%/,)$if($ne(%albumartist%,),$num(%tracknumber%,2) ,)%title%
[
"000",
"005",
"00A",
"00F",
"050",
"055",
"05A",
"05F",
"0A0",
@josuecau
josuecau / gpx-routes-to-tracks.sh
Last active March 8, 2021 20:15
Convert GPX routes (rte) into tracks (trk) using gpsbabel (https://www.gpsbabel.org)
#!/usr/bin/env bash
#
# Convert GPX routes (rte) into tracks (trk) using gpsbabel.
# (https://www.gpsbabel.org/)
set -e
if ! type gpsbabel >/dev/null 2>&1; then
echo 'gpsbabel not found'
exit 1
@josuecau
josuecau / Makefile
Last active May 4, 2019 12:31
A Makefile for Rust projects
build:
cargo build --release
check:
cargo check && cargo clippy
fmt:
cargo +nightly fmt
doc:
@josuecau
josuecau / gist:b493d0b7729c6744ccef28a8e5ca2c0c
Created March 2, 2019 10:46
MusicBrainz Picard File Naming
$if2(%albumartist%,%artist%)/$if($ne(%albumartist%,),%album%/,)$if($gt(%totaldiscs%,1),%discnumber%/,)$if($ne(%albumartist%,),$num(%tracknumber%,2) ,)%title%
@josuecau
josuecau / h265toh264.sh
Last active February 24, 2019 12:17
Convert H.265 (HEVC) to H.264 (MPEG-4 AVC)
#!/usr/bin/env bash
#
# Description: Convert H.265 (HEVC) to H.264 (MPEG-4 AVC)
# Author: Josué Cau <me@josuecau.com>
# Date: 2018-02-16
# Dependencies: ffmpeg(1)
set -e
if [ "$#" -ne 3 ]; then