include Makefile.cfg # In deer Makefile.cfg muss mindestens das VID_GAL_DIR stehen # Experimentieren mit Videocompression # Stabilisierung mit vidstab # Kompression mit VP9 und Konstanter Qualität # Standardwerte # Für eine schnelle Komprimierung #DEFAULT_VID_CODEC = libvpx #DEFAULT_VID_CODEC_BITRATE = 500k DEFAULT_VID_CODEC = libaom-av1 DEFAULT_VID_CODEC_HEIGHT = 360 DEFAULT_VID_CODEC_BITRATE = 500k DEFAULT_VID_CODEC_CQ = 36 DEFAULT_FFMPEG = ffmpeg # 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 := $(if $(VID_CODEC),$(VID_CODEC),$(DEFAULT_VID_CODEC)) VID_CODEC_HEIGHT := $(if $(VID_CODEC_HEIGHT),$(VID_CODEC_HEIGHT),$(DEFAULT_VID_CODEC_HEIGHT)) VID_CODEC_BITRATE := $(if $(VID_CODEC_BITRATE),$(VID_CODEC_BITRATE),$(DEFAULT_VID_CODEC_BITRATE)) VID_CODEC_CQ := $(if $(VID_CODEC_CQ),$(VID_CODEC_CQ),$(DEFAULT_VID_CODEC_CQ)) FFMPEG := $(if $(FFMPEG),$(FFMPEG),$(DEFAULT_FFMPEG)) # Videoquellen 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) # Targets mkv_VIDS = $(addprefix videos/mkv/, $(addsuffix .mkv, $(basename $(notdir $(ORIG_VIDS))))) 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) $(mkv_VIDS) all: $(mkv_VIDS) # Aufnahmen mit Helko videos/mkv/%.mkv: videos/aufnahmen/helko/%.mp4 mkdir -p videos/mkv # Erst die Stabilisierung: $(FFMPEG) -i $^ \ -filter:v vidstabdetect=shakiness=10:accuracy=15 \ -f null \ - $(FFMPEG) -i $^ \ -filter:v vidstabtransform=smoothing=30:optzoom=2:interpol=bicubic,scale=-1:$(VID_CODEC_HEIGHT) \ -strict experimental \ -codec:v $(VID_CODEC) \ -crf $(DEFAULT_VID_CODEC_CQ) \ -b:v 0 \ -an \ -f matroska \ $@ # 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 \ # $@ # Wir extperimentieren ja nur, deshalb kein Upload # curl \ # --upload-file $@ \ # --user cwsvjudo:Dee4oquu \ # ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \ # --ftp-create-dirs # 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:Dee4oquu \ # "ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \ # --ftp-create-dirs # 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)