1#!/bin/bash
2#
3# Copyright (c) 2016, Alliance for Open Media. All rights reserved
4#
5# This source code is subject to the terms of the BSD 2 Clause License and
6# the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
7# was not distributed with this source code in the LICENSE file, you can
8# obtain it at www.aomedia.org/license/software. If the Alliance for Open
9# Media Patent License 1.0 was not distributed with this source code in the
10# PATENTS file, you can obtain it at www.aomedia.org/license/patent.
11#
12# Author: jimbankoski@google.com (Jim Bankoski)
13
14if [[ $# -ne 2 ]]; then
15  echo "Encodes a file using best known settings (slow!)"
16  echo "  Usage:    be [FILE] [BITRATE]"
17  echo "  Example:  be akiyo_cif.y4m 200"
18  exit
19fi
20
21f=$1  # file is first parameter
22b=$2  # bitrate is second parameter
23
24if [[ -e $f.fpf ]]; then
25  # First-pass file found, do second pass only
26  aomenc \
27    $f \
28    -o $f-$b.av1.webm \
29    -p 2 \
30    --pass=2 \
31    --fpf=$f.fpf \
32    --best \
33    --cpu-used=0 \
34    --target-bitrate=$b \
35    --auto-alt-ref=1 \
36    -v \
37    --minsection-pct=0 \
38    --maxsection-pct=800 \
39    --lag-in-frames=25 \
40    --kf-min-dist=0 \
41    --kf-max-dist=99999 \
42    --static-thresh=0 \
43    --min-q=0 \
44    --max-q=63 \
45    --drop-frame=0 \
46    --bias-pct=50 \
47    --minsection-pct=0 \
48    --maxsection-pct=800 \
49    --psnr \
50    --arnr-maxframes=7 \
51    --arnr-strength=3 \
52    --arnr-type=3
53else
54  # No first-pass file found, do 2-pass encode
55  aomenc \
56    $f \
57    -o $f-$b.av1.webm \
58    -p 2 \
59    --pass=1 \
60    --fpf=$f.fpf \
61    --best \
62    --cpu-used=0 \
63    --target-bitrate=$b \
64    --auto-alt-ref=1 \
65    -v \
66    --minsection-pct=0 \
67    --maxsection-pct=800 \
68    --lag-in-frames=25 \
69    --kf-min-dist=0 \
70    --kf-max-dist=99999 \
71    --static-thresh=0 \
72    --min-q=0 \
73    --max-q=63 \
74    --drop-frame=0
75
76  aomenc \
77    $f \
78    -o $f-$b.av1.webm \
79    -p 2 \
80    --pass=2 \
81    --fpf=$f.fpf \
82    --best \
83    --cpu-used=0 \
84    --target-bitrate=$b \
85    --auto-alt-ref=1 \
86    -v \
87    --minsection-pct=0 \
88    --maxsection-pct=800 \
89    --lag-in-frames=25 \
90    --kf-min-dist=0 \
91    --kf-max-dist=99999 \
92    --static-thresh=0 \
93    --min-q=0 \
94    --max-q=63 \
95    --drop-frame=0 \
96    --bias-pct=50 \
97    --minsection-pct=0 \
98    --maxsection-pct=800 \
99    --psnr \
100    --arnr-maxframes=7 \
101    --arnr-strength=3 \
102    --arnr-type=3
103fi
104