# ffmpeg concat 20230804013241 # 20231118122511: added: -metadata:s:v rotate="" # 20231128170123: $3 for additional parameters such as -an. ffco() { ffmpeg -f concat -safe 0 $3 -i "$1" -metadata:s:v rotate="" -c copy "$2"; } # ffco-instant from last ffmpeg file 20230914000245 # 20231118122459: added: -metadata:s:v rotate="" ffco-instant() { ffmpeg -f concat -safe 0 $2 -i "$(ls -t -1 ~/Documents/massdmp/ffmpeg* |head -n 1)" -metadata:s:v rotate="" -c copy "$1"; } # ffmute - mute audio 20231123001501 ffmute() { ffmpeg -i "$1" -c:v copy -an "$2"; } # fferror - verify integrity 20231123021438 fferror() { ffmpeg -v error -i "$1" -f null - ;} # ffmpeg filelist generator 20231020044358 fflist() { last_file="$(ls -t -1 ~/Documents/massdmp/ffmpeg* |head -n 1)" if [[ $(head -n 1 $last_file) == "file '"* ]]; then return 1; fi # return if file already modified if [ "$1" == "" ]; then sed -i -r "s/(.*)/file '\\1'/g" "$last_file"; else sed -i -r "s/(.*)/file '\1'/g" "$1"; fi } # mediainfo table 20231130012905 (Filter out useless audio "frame rate" first) mediainfotable() { mediainfo "$@" |grep -v "Frame rate.*SPF" |grep -P "(name|Width|Height|Frame rate )" |tr '\n' ' ' |sed -r 's/FPS/FPS\n/g' |sed -r "s/( )+//g"; } # redact geotag from video for privacy 20231203215921 gpsnull() { sed -i -r "s/\+[0-9][0-9]\.[0-9][0-9][0-9][0-9]\+[0-9][0-9][0-9]\.[0-9][0-9][0-9][0-9]\//+00.0000+000.0000\//g" "$@"; } # only list time stamp and file name lstimestamp() { ls -l --full-time "$@" | sed -r "s/\*//g" |sed -r "s/\.000000000//g" |sed -r "s/^.* (2[0-9][0-9][0-9]-)/\1/g"; }