Post AhdcpVKCNYcfTw7NAm by sss@pleroma.dark-alexandr.net
(DIR) More posts by sss@pleroma.dark-alexandr.net
(DIR) Post #AhdcpVKCNYcfTw7NAm by sss@pleroma.dark-alexandr.net
2024-05-01T09:51:24.224181Z
0 likes, 0 repeats
#script #note #hint #ffmpeg #av1 #avif #encoding #photoso it seems we finally got some fast avif encoder with acceptable quality?here is a quick and dirty script to encode images into avif format using av1_qsv video encoder via ffmpeg```#!/bin/shFILE=$(basename "$1")EXT="${FILE##*.}"TGT_EXT="avif"echo -e "\E[32mfile with ext: $EXT\n"IPARAMS=( "-hide_banner" "-threads" "0"# "-hwaccel" "qsv"# "-hwaccel_output_format" "qsv" "-init_hw_device" "qsv=hw:hw_any,name=hw" "-filter_hw_device" "hw")OPARAMS=( "-strict" "experimental" "-c:v" "av1_qsv" "-preset:v" "veryslow" "-extbrc:v" "1" "-low_power:v" "false" "-low_delay_brc" "false" "-q:v" "66" "-color_primaries:v" "bt2020" "-colorspace:v" "bt2020c")echo "ffmpeg ${IPARAMS[@]} -i "$1" ${OPARAMS[@]} "$1".${TGT_EXT}"ffmpeg ${IPARAMS[@]} -i "$1" ${OPARAMS[@]} "$1".${TGT_EXT}if [ $? != 0 ]; thenecho -e "\E[31mShit happened" exit $?fiexiftool -overwrite_original -tagsFromFile "$1" "$1".${TGT_EXT}if [ $? == 0 ]; thenrm "$1"NAME=$(echo "$1" | sed 's/\(.*\)\..*/\1/')mv "$1".${TGT_EXT} "${NAME}".${TGT_EXT} /home/sss/scripts/syncfs "${NAME}".${TGT_EXT} echo done "${NAME}".${TGT_EXT}elseecho -e "\E[31mShit happened"fi```it' also possible to use hwaccel for image decoding, but at least mjpeg_qsv is broken for today which leading to corrupt image instead if errors....