mirror of
https://github.com/levogevo/ffmpeg-av1-builder.git
synced 2026-01-15 16:56:18 +00:00
switch to psy and better encode helper
This commit is contained in:
@@ -13,31 +13,54 @@ usage() {
|
||||
|
||||
encode() {
|
||||
ENCODE_FILE="/tmp/encode.sh"
|
||||
SVT_PARAMS="${GRAIN}tune=0:enable-overlays=1:scd=1:enable-hdr=1:fast-decode=1:enable-variance-boost=1:enable-qm=1:qm-min=0:qm-max=15"
|
||||
echo '#!/bin/bash' > "$ENCODE_FILE"
|
||||
|
||||
SVT_PARAMS="${GRAIN}adaptive-film-grain=1:tune=3:enable-overlays=1:scd=1:enable-hdr=1:fast-decode=1:enable-variance-boost=1:enable-qm=1:qm-min=0:qm-max=15"
|
||||
echo "export SVT_PARAMS=\"$SVT_PARAMS\"" >> "$ENCODE_FILE"
|
||||
|
||||
UNMAP=$(unmap_streams "$INPUT")
|
||||
echo "export UNMAP=\"$UNMAP\"" >> "$ENCODE_FILE"
|
||||
|
||||
AUDIO_FORMAT='-af "aformat=channel_layouts=7.1|5.1|stereo|mono" -c:a libopus'
|
||||
echo "export AUDIO_FORMAT='$AUDIO_FORMAT'" >> "$ENCODE_FILE"
|
||||
|
||||
AUDIO_BITRATE=$(get_bitrate_audio "$INPUT")
|
||||
echo "export AUDIO_BITRATE=\"$AUDIO_BITRATE\"" >> "$ENCODE_FILE"
|
||||
|
||||
VIDEO_ENCODER="libsvtav1"
|
||||
echo "export VIDEO_ENCODER=\"$VIDEO_ENCODER\"" >> "$ENCODE_FILE"
|
||||
|
||||
VIDEO_PARAMS="-pix_fmt yuv420p10le -crf 25 -preset 3 -g 240"
|
||||
FFMPEG_PARAMS="-y -c:s copy -c:V $VIDEO_ENCODER $VIDEO_PARAMS"
|
||||
NL=' \\\n\t'
|
||||
echo "export VIDEO_PARAMS=\"$VIDEO_PARAMS\"" >> "$ENCODE_FILE"
|
||||
|
||||
FFMPEG_PARAMS="-y -c:s copy -c:V \$VIDEO_ENCODER \$VIDEO_PARAMS"
|
||||
echo "export FFMPEG_PARAMS=\"$FFMPEG_PARAMS\"" >> "$ENCODE_FILE"
|
||||
|
||||
FFMPEG_VERSION="$(ffmpeg -version 2>&1 | grep version | cut -d' ' -f1-3)"
|
||||
VIDEO_ENC_VERSION="$(ldd $(which ffmpeg) | grep -i "$VIDEO_ENCODER" | cut -d' ' -f3 | xargs readlink)"
|
||||
AUDIO_ENC_VERSION="$(ldd $(which ffmpeg) | grep -i libopus | cut -d' ' -f3 | xargs readlink)"
|
||||
ADD_METADATA="-metadata encoding_params=\"$FFMPEG_VERSION $AUDIO_ENC_VERSION $VIDEO_ENC_VERSION $VIDEO_PARAMS $SVT_PARAMS\""
|
||||
echo "export FFMPEG_VERSION=\"$FFMPEG_VERSION\"" >> "$ENCODE_FILE"
|
||||
|
||||
VIDEO_ENC_VERSION="$(ldd $(which ffmpeg) | grep -i "$VIDEO_ENCODER" | cut -d' ' -f3 | xargs readlink)"
|
||||
echo "export VIDEO_ENC_VERSION=\"$VIDEO_ENC_VERSION\"" >> "$ENCODE_FILE"
|
||||
|
||||
AUDIO_ENC_VERSION="$(ldd $(which ffmpeg) | grep -i libopus | cut -d' ' -f3 | xargs readlink)"
|
||||
echo "export AUDIO_ENC_VERSION=\"$AUDIO_ENC_VERSION\"" >> "$ENCODE_FILE"
|
||||
|
||||
ADD_METADATA="\"encoding_params=\\\"\$FFMPEG_VERSION \$AUDIO_ENC_VERSION \$VIDEO_ENC_VERSION \$VIDEO_PARAMS \$SVT_PARAMS\\\"\""
|
||||
# ADD_METADATA="\"-metadata encoding_params='yes'\""
|
||||
echo "export ADD_METADATA=$ADD_METADATA" >> "$ENCODE_FILE"
|
||||
|
||||
NL=' \\\n\t'
|
||||
|
||||
echo '#!/bin/bash' > "$ENCODE_FILE"
|
||||
echo -e ffmpeg -i \""$INPUT"\" -map 0 $UNMAP \
|
||||
$AUDIO_FORMAT $NL $AUDIO_BITRATE \
|
||||
$ADD_METADATA $NL \
|
||||
"$FFMPEG_PARAMS" -dolbyvision 1 -svtav1-params \
|
||||
$NL "\"$SVT_PARAMS\" \"$OUTPUT\" ||" $NL \
|
||||
ffmpeg -i \""$INPUT"\" -map 0 $UNMAP \
|
||||
$AUDIO_FORMAT $NL $AUDIO_BITRATE \
|
||||
$ADD_METADATA $NL \
|
||||
"$FFMPEG_PARAMS" -svtav1-params \
|
||||
$NL "\"$SVT_PARAMS\" \"$OUTPUT\" || exit 1" >> "$ENCODE_FILE"
|
||||
\$AUDIO_FORMAT $NL \$AUDIO_BITRATE \
|
||||
-metadata \"\$ADD_METADATA\" $NL \
|
||||
\$FFMPEG_PARAMS -dolbyvision 1 -svtav1-params \
|
||||
$NL "\"\$SVT_PARAMS\" \"\$OUTPUT\" ||" $NL \
|
||||
ffmpeg -i \""$INPUT"\" -map 0 \$UNMAP \
|
||||
\$AUDIO_FORMAT $NL \$AUDIO_BITRATE \
|
||||
-metadata \"\$ADD_METADATA\" $NL \
|
||||
"\$FFMPEG_PARAMS" -svtav1-params \
|
||||
$NL "\"\$SVT_PARAMS\" \"$OUTPUT\" || exit 1 " >> "$ENCODE_FILE"
|
||||
|
||||
if [[ "$EXT" == "mkv" ]]; then
|
||||
echo "mkvpropedit \"$OUTPUT\" --add-track-statistics-tags" >> "$ENCODE_FILE"
|
||||
|
||||
Reference in New Issue
Block a user