]> git.phdru.name Git - audio-cdr-video.git/blob - video/ff_encode
Add ff_encode for 1 and 2-pass encoding using ffmpeg
[audio-cdr-video.git] / video / ff_encode
1 #! /bin/sh
2
3 if [ -z "$1" ]; then
4    echo "Usage: [vcodec=s] [vbitrate=n] [vscale=s] [aid=n] [acodec=s] [abitrate=n] [ascale=s] [pass=n] $0 input.avi [-ffmpeg_options]"
5    exit 1
6 fi
7
8 if [ -z "$vcodec" ]; then
9    vcodec=mpeg4
10 else
11    vcodec="$vcodec"
12 fi
13
14 if [ -z "$vbitrate" ]; then
15    vbitrate=1600k
16 else
17    vbitrate="$vbitrate"
18 fi
19
20 if [ -n "$vscale" ]; then
21    vscale="-s $vscale"
22 fi
23
24 if [ -z "$acodec" ]; then
25    acodec=libmp3lame
26 else
27    acodec="$acodec"
28 fi
29
30 if [ -z "$abitrate" ]; then
31    abitrate=256k
32 else
33    abitrate="$abitrate"
34 fi
35
36 if [ -z "$pass" ]; then
37    pass=1
38 else
39    pass="$pass"
40 fi
41
42 input="$1"
43 shift
44
45 if [ "$pass" -eq 1 ]; then
46    exec ffmpeg -i "$input" -f avi -c:v "$vcodec" -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" "$@" output.avi
47
48 elif [ "$pass" -eq 2 ]; then
49    ffmpeg -pass 1 -i "$input" -f avi -c:v "$vcodec" -b:v "$vbitrate" -g 300 -bf 2 -an -f rawvideo -y /dev/null "$@" &&
50    exec ffmpeg -pass 2 -i "$input" -f avi -c:v "$vcodec" -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" "$@" output.avi
51
52 else
53    echo "Can only do 1 or 2 passes." >&2
54    exit 1
55 fi