summaryrefslogtreecommitdiff
path: root/bin/tc
blob: bf013eb19f8fdcabe768aca7b8a6e8131539aa2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh
for dir in ./*; do
  cd "$dir"
  mkdir -p output
  for file in *.*; do
  STRIPPED_NAME=${file%.*}

  # CPU

  ffmpeg -n -i "$file" \
  -init_hw_device vulkan=vk:0 \
  -c:a copy -c:v libsvtav1 -crf "$CRF" -preset "$PRESET" \
  -svtav1-params "tune=0:lookahead=120:scm=1" \
  output/"$STRIPPED_NAME".mkv

  # -init_hw_device vulkan=vk:0
  # platform-agnostic hardware accelerated decoding with vulkan
  # only available for h264,h265, and experimentally av1

  # parameters
  ## temporal filtering: averages frames
  # enable-tf=0
  ## screen content mode: optimization for screen captures (goated?)
  # scm=1

  # 10 bit color
  #-pix_fmt yuv420p10le \

  # VAAPI
  #ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi \
  #-i "$file" -c:a copy -c:v av1_vaapi -crf 20 -b:v 30M "output/$file"
  #ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi \
  #-i "$file" -c:a copy -c:v av1_vaapi -rc_mode VBR -b:v 30M -maxrate 35M "output/$file"
  # NVENC
  #ffmpeg -i "$file" \
  #-c:a copy -c:v hevc_nvenc -preset p7 -rc vbr -maxrate 1M output/"$file".mkv
  done
  cd ..
done