Advertisement
Guest User

FFMPEG enhancement suite 2023-12-18

a guest
Dec 18th, 2023
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.86 KB | Source Code | 0 0
  1.  
  2. # ffmpeg concat 20230804013241 # 20231118122511: added: -metadata:s:v rotate="" # 20231128170123: $3 for additional parameters such as -an.
  3. ffco() { ffmpeg -f concat -safe 0 $3 -i "$1" -metadata:s:v rotate="" -c copy "$2"; }
  4. # ffco-instant from last ffmpeg file 20230914000245 # 20231118122459: added: -metadata:s:v rotate=""
  5. ffco-instant() {
  6.     fflist; # 20231209120458: now that fflist autodetects if the text file was already modified, it can be run automatically.
  7.     ffmpeg -f concat -safe 0 $2 -i "$(fflastfile)" -metadata:s:v rotate="" -c copy "$1";
  8. }
  9. # ffmute - mute audio 20231123001501
  10. ffmute() { ffmpeg -i "$1" -c:v copy -an "$2"; }
  11. # fferror - verify integrity 20231123021438
  12. fferror() { ffmpeg -v error -i "$1" -f null  - ;}
  13. # ffmpeg filelist generator 20231020044358
  14. fflist() {
  15.     selected_file=$1
  16.     # auto-select last file if no argument provided
  17.     if [ "$1" == "" ]; then selected_file="$(fflastfile)";fi
  18.     echo "Creating concatinated video from: $selected_tile"
  19.    
  20.     # sort file names
  21.     sort $selected_file >> $selected_file.sorted
  22.     mv $selected_file.sorted $selected_file
  23.    
  24.     if [[ $(head -n 1 $selected_file) == "file '"* ]]; then return 1; fi # return if file already modified
  25.     sed -i -r "s/(.+)/file '\1'/g" "$selected_file"; # make file list digestable for ffmpeg concat
  26. }
  27. # return last text file for concatenation
  28. fflastfile() { ls -t -1 ~/Documents/massdmp/ffmpeg* |head -n 1; }
  29.  
  30. # mediainfo table 20231130012905 (Filter out useless audio "frame rate" first)
  31. 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"; }
  32. # redact geotag from video for privacy 20231203215921
  33. 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" "$@"; }
  34. gpsnull_exif() { exiftool -gps:all="" "$@"; } # for pictures 20231218172111
  35.  
  36. # only list time stamp and file name
  37. 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"; }
  38.  
  39.  
  40. # import 20230812125912
  41. cmdmp() { xed ~/Documents/cmdmp/cmdmp-$(date +%Y%m%d%H%M%S).txt ; history >>"$cmdmp/history-$(date +%Y%m%d%H%M%S).txt";  } # 20220302053227 # 20230821013647
  42. mozhist() { sqlite3 "$1" "SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch'), moz_places.url,title FROM moz_places, moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id ORDER BY visit_date" |less; } # 20220303152552
  43. screenrescue() { xrandr -s 640x480; xrandr -s 1920x1080; redshift -O 2400; } # 20220310215831
  44. crhist() { sqlite3 "$1" "SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch'),url,title  FROM urls ORDER BY last_visit_time DESC"; } # 20220317222929
  45. screencast() { ffmpeg  -framerate 30 -f x11grab -i :0.0 ~/screencast/screencast-$(date +%Y-%m-%dT%H-%M-%S).mp4 ;} # 20230831110355
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement