include Makefile.cfg # In deer Makefile.cfg mus mindestens das VID_GAL_DIR stehen # Experimentieren mit vidstab, nur in helko # Standardwerte # Für eine schnelle Komprimierung #DEFAULT_VID_CODEC = libvpx #DEFAULT_VID_CODEC_BITRATE = 500k DEFAULT_VID_CODEC_HEIGHT = 360 DEFAULT_VID_CODEC_BITRATE = 500k DEFAULT_VID_CODEC = libvpx-vp9 # Standardwerte auf die benutzen Variablen schreiben, falls diese noch # nicht (z.B. aus dem Terminal heraus oder über ein IncludeCfgFile) # gesetzt worden sind VID_CODEC_BITRATE := $(if $(VID_CODEC_BITRATE),$(VID_CODEC_BITRATE),$(DEFAULT_VID_CODEC_BITRATE)) VID_CODEC_HEIGHT := $(if $(VID_CODEC_BITRATE),$(VID_CODEC_BITRATE),$(DEFAULT_VID_CODEC_BITRATE)) VID_CODEC := $(if $(VID_CODEC),$(VID_CODEC),$(DEFAULT_VID_CODEC)) ORIG_VIDS = \ $(wildcard videos/aufnahmen/mögel/*.MP4) \ $(wildcard videos/aufnahmen/moegel/*.MP4) \ $(wildcard videos/aufnahmen/helko/*.mp4) \ $(wildcard videos/aufnahmen/elly/*.mp4) \ $(wildcard videos/aufnahmen/papaRomy/*.webm) \ $(wildcard videos/aufnahmen/papaRomy/*.mp4) webm_VIDS = $(addprefix videos/webm/, $(addsuffix .webm, $(basename $(notdir $(ORIG_VIDS))))) JPEG_THMB = $(addprefix videos/thumbnails/, $(addsuffix .jpg, $(basename $(notdir $(ORIG_VIDS))))) .PHONY: all all: $(JPEG_THMB) $(webm_VIDS) # Aufnahmen mit Helko videos/webm/%.webm: videos/aufnahmen/helko/%.mp4 mkdir -p videos/webm # Erst die Stabilisierung: ffmpeg -i $^ \ -filter:v vidstabdetect=shakiness=10:accuracy=15 \ -f null \ - # ffmpeg -i dummy.avi -i dummyStab.avi \ # -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" \ # side_by_side.avi ffmpeg -i $^ \ -filter:v vidstabtransform=smoothing=30:optzoom=2:interpol=bicubic,scale=-1:$(VID_CODEC_HEIGHT) \ -codec:v $(VID_CODEC) \ -pass 1 \ -b:v $(VID_CODEC_BITRATE) \ -threads 1 \ -speed 4 \ -tile-columns 0 \ -frame-parallel 0 \ -g 9999 \ -aq-mode 0 \ -an \ -f webm \ -y \ /dev/null ffmpeg -i $^ \ -filter:v vidstabtransform=smoothing=30:optzoom=2:interpol=bicubic,scale=-1:$(VID_CODEC_HEIGHT) \ -codec:v $(VID_CODEC) \ -pass 2 \ -b:v $(VID_CODEC_BITRATE) \ -threads 1 \ -speed 0 \ -tile-columns 0 \ -frame-parallel 0 \ -auto-alt-ref 1 \ -lag-in-frames 25 \ -g 9999 \ -aq-mode 0 \ -an \ -f webm \ $@ # curl \ # --upload-file $@ \ # --user cwsvjudo:***REMOVED*** \ # ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \ # --ftp-create-dirs videos/webm/%.webm: videos/aufnahmen/mögel/%.MP4 mkdir -p videos/webm ffmpeg -i $^ \ -filter:v yadif=0:0:0,scale=-1:480 \ -codec:v $(VID_CODEC) \ -pass 1 \ -b:v $(VID_CODEC_BITRATE) \ -speed 4 \ -g 9999 \ -an \ -f webm \ -y \ /dev/null ffmpeg -i $^ \ -filter:v yadif=0:0:0,scale=-1:480 \ -codec:v $(VID_CODEC) \ -pass 2 \ -b:v $(VID_CODEC_BITRATE) \ -speed 0 \ -auto-alt-ref 1 \ -g 9999 \ -an \ -f webm \ $@ curl \ --upload-file $@ \ --user cwsvjudo:***REMOVED*** \ ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \ --ftp-create-dirs videos/webm/%.webm: videos/aufnahmen/moegel/%.MP4 mkdir -p videos/webm ffmpeg -i $^ \ -filter:v yadif=0:0:0,scale=-1:480 \ -codec:v $(VID_CODEC) \ -pass 1 \ -b:v $(VID_CODEC_BITRATE) \ -speed 4 \ -g 9999 \ -an \ -f webm \ -y \ /dev/null ffmpeg -i $^ \ -filter:v yadif=0:0:0,scale=-1:480 \ -codec:v $(VID_CODEC) \ -pass 2 \ -b:v $(VID_CODEC_BITRATE) \ -speed 0 \ -auto-alt-ref 1 \ -g 9999 \ -an \ -f webm \ $@ curl \ --upload-file $@ \ --user cwsvjudo:***REMOVED*** \ ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \ --ftp-create-dirs videos/webm/%.webm: videos/aufnahmen/papaRomy/%.mp4 mkdir -p videos/webm ffmpeg -i $^ \ -filter:v scale=-1:480,deshake=-1:-1:-1:-1:64:64:3:64:125:0 \ -codec:v $(VID_CODEC) \ -pass 1 \ -b:v $(VID_CODEC_BITRATE) \ -speed 4 \ -g 9999 \ -an \ -f webm \ -y \ /dev/null ffmpeg -i $^ \ -filter:v scale=-1:480,deshake=-1:-1:-1:-1:64:64:3:64:125:0 \ -codec:v $(VID_CODEC) \ -pass 2 \ -b:v $(VID_CODEC_BITRATE) \ -speed 0 \ -auto-alt-ref 1 \ -g 9999 \ -an \ -f webm \ $@ curl \ --upload-file $@ \ --user cwsvjudo:***REMOVED*** \ "ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \ --ftp-create-dirs videos/webm/%.webm: videos/aufnahmen/papaRomy/%.webm mkdir -p videos/webm ffmpeg -i $^ \ -filter:v scale=-1:480,deshake=-1:-1:-1:-1:64:64:3:64:125:0 \ -codec:v $(VID_CODEC) \ -pass 1 \ -b:v $(VID_CODEC_BITRATE) \ -speed 4 \ -g 9999 \ -an \ -f webm \ -y \ /dev/null ffmpeg -i $^ \ -filter:v scale=-1:480,deshake=-1:-1:-1:-1:64:64:3:64:125:0 \ -codec:v $(VID_CODEC) \ -pass 2 \ -b:v $(VID_CODEC_BITRATE) \ -speed 0 \ -auto-alt-ref 1 \ -g 9999 \ -an \ -f webm \ $@ curl \ --upload-file $@ \ --user cwsvjudo:***REMOVED*** \ "ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \ --ftp-create-dirs videos/webm/%.webm: videos/aufnahmen/elly/%.mp4 mkdir -p videos/webm ffmpeg -i "$^" \ -filter:v scale=-1:480,deshake=-1:-1:-1:-1:64:64:3:64:125:0 \ -codec:v $(VID_CODEC) \ -pass 1 \ -b:v $(VID_CODEC_BITRATE) \ -speed 4 \ -g 9999 \ -an \ -f webm \ -y \ /dev/null ffmpeg -i "$^" \ -filter:v scale=-1:480,deshake=-1:-1:-1:-1:64:64:3:64:125:0 \ -codec:v $(VID_CODEC) \ -pass 2 \ -b:v $(VID_CODEC_BITRATE) \ -speed 0 \ -auto-alt-ref 1 \ -g 9999 \ -an \ -f webm \ "$@" # curl \ # --upload-file "$@" \ # --user cwsvjudo:***REMOVED*** \ # "ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \ # --ftp-create-dirs videos/thumbnails/%.jpg: videos/webm/%.webm mkdir -p videos/thumbnails -ffmpeg -i "$^" -vf "select=gt(scene\,0.4)" -frames:v 5 -vsync vfr -vf fps=fps=1/600 "$@" # curl \ # --upload-file "$@" \ # --user cwsvjudo:***REMOVED*** \ # "ftp://cwsvjudo.bplaced.net/www/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \ # --ftp-create-dirs .PHONY: videos/thumbnails videos/thumbnails: $(JPEG_THMB)