blob: af29b8ad13641b0de36825c7d40dd418956e63d6 (
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
|
set -x
if [ -z "$1" ]; then
echo "Usage: $0 <filename> [<encoder>] [<container>]"
exit 1
fi
ENCODER=${2:-h264}
CONTAINER=${3:-matroska}
METRICS_SCRIPT="$(dirname "$0")/metrics.script"
[ -z "$METRICS_SCRIPT" ] && exit 1
SCALE_SCRIPT="$(dirname "$0")/scale.script"
[ -z "$SCALE_SCRIPT" ] && exit 1
./ffmpeg_g -y -v verbose \
-i "$1" \
-/filter_complex "$SCALE_SCRIPT" \
-f "$CONTAINER" -c:v "$ENCODER" -enc_time_base demux -fps_mode vfr -map '[1080_for_enc]' out_1080p.mkv \
-f "$CONTAINER" -c:v "$ENCODER" -enc_time_base demux -fps_mode vfr -map '[720_for_enc]' out_720p.mkv \
-f "$CONTAINER" -c:v "$ENCODER" -enc_time_base demux -fps_mode vfr -map '[540_for_enc]' out_qhd.mkv \
-f null -c:v wrapped_avframe -enc_time_base demux -fps_mode vfr -map '[1080_for_metrics]' - \
-f null -c:v wrapped_avframe -enc_time_base demux -fps_mode vfr -map '[720_for_metrics]' - \
-f null -c:v wrapped_avframe -enc_time_base demux -fps_mode vfr -map '[540_for_metrics]' - \
-/filter_complex "$METRICS_SCRIPT" \
-dec 0:0 -dec 1:0 -dec 2:0 -dec 3:0 -dec 4:0 -dec 5:0 \
-map '[out_1080_1080]' -map '[out_1080_720]' -map '[out_1080_540]' \
-map '[out_720_1080]' -map '[out_720_720]' -map '[out_720_540]' \
-map '[out_540_1080]' -map '[out_540_720]' -map '[out_540_540]' \
-fps_mode vfr -enc_time_base filter \
-f null -
|