]> git.phdru.name Git - audio-cdr-video.git/blob - video/tc_encode
Do not shift an empty list of arguments
[audio-cdr-video.git] / video / tc_encode
1 #! /bin/sh
2
3 if [ -z "$1" ]; then
4    echo "Usage: [vcodec=s] [vbitrate=n] [vscale=s] [acodec=s] [abitrate=n] [ascale=s] [pass=n] $0 input.avi [-transcode_options]"
5    exit 1
6 fi
7
8 if [ -z "$vcodec" ]; then
9    vcodec=ffmpeg
10 else
11    vcodec="$vcodec"
12 fi
13
14 if [ -z "$vbitrate" ]; then
15    vbitrate=1600
16 else
17    vbitrate="$vbitrate"
18 fi
19
20 if [ -n "$vscale" ]; then
21    vscale="-Z $vscale"
22 fi
23
24 if [ -z "$acodec" ]; then
25    acodec=mp3
26 else
27    acodec="$acodec"
28 fi
29
30 if [ -z "$abitrate" ]; then
31    abitrate=256
32 else
33    abitrate="$abitrate"
34 fi
35
36 if [ -n "$ascale" ]; then
37    ascale="-s $ascale"
38 fi
39
40 if [ "$vcodec" = ffmpeg ]; then
41    tc_vcodec=ffmpeg
42    vopts="-F mpeg4"
43 elif [ "$vcodec" = h264 ]; then
44    tc_vcodec=ffmpeg
45    vopts="-F h264"
46 elif [ "$vcodec" = xvid ]; then
47    tc_vcodec=xvid
48    vopts=""
49 elif [ "$vcodec" = copy ]; then
50    tc_vcodec=copy
51    vopts=""
52 else
53    echo "Unknown video codec $vcodec; known codecs are ffmpeg, h264, xvid, copy" >&2
54    exit 1
55 fi
56
57 if [ "$acodec" = mp3 ]; then
58    aopts=""
59 elif [ "$acodec" = copy ]; then
60    aopts=""
61 else
62    echo "Unknown audio codec $acodec; known codecs are mp3 and copy" >&2
63    exit 1
64 fi
65
66 if [ -z "$pass" ]; then
67    pass=1
68 else
69    pass="$pass"
70 fi
71
72 input="$1"
73 shift
74
75 if [ "$pass" -eq 1 ]; then
76    exec transcode -i "$input" -y $tc_vcodec      $vopts -u 50 -w "$vbitrate" -b "$abitrate"                  $vscale $ascale -o output.avi "$@"
77
78 elif [ "$pass" -eq 2 ]; then
79
80         transcode -i "$input" -y $tc_vcodec,null $vopts -u 50 -w "$vbitrate" -b "$abitrate" -R1 -x auto,null $vscale         -o /dev/null  "$@" &&
81    exec transcode -i "$input" -y $tc_vcodec      $vopts -u 50 -w "$vbitrate" -b "$abitrate" -R2              $vscale $ascale -o output.avi "$@"
82
83 else
84    echo "Can only do 1 or 2 pass." >&2
85    exit 1
86 fi