Changes of Revision 17
ffx264.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Sun Nov 13 11:36:00 UTC 2016 - neutrino8@opensuse.org
4
+
5
+- Update to version 3.1.6
6
+ * Added support for batch encoding mode, to be activated with the
7
+ new -b option. It's used to encode directories with video files
8
+ * Renamed variable $mode to $encmode for clarity
9
+ * Reworked the input/output code
10
+ * Instead of relying on a config var to set the subtitles amount
11
+ to support, ask the user each time to provide it. Makes the
12
+ code less complex and easier to extend in the future. Bumps up
13
+ config file version to 26
14
+ * Check if the X264PARAMS var is missing from config in case we're
15
+ not using an x264 preset
16
+ * Updated the man page
17
+
18
+-------------------------------------------------------------------
19
Sat Nov 12 10:48:00 UTC 2016 - neutrino8@opensuse.org
20
21
- Update to version 3.1.5
22
ffx264.spec
Changed
10
1
2
3
4
Name: ffx264
5
-Version: 3.1.5
6
+Version: 3.1.6
7
Release: 0
8
Summary: A small shell script for encoding to H.264 with ffmpeg
9
License: GPL-2.0+
10
ffx264-3.1.5.tar.gz/ChangeLog -> ffx264-3.1.6.tar.gz/ChangeLog
Changed
18
1
2
+2016-11-13 - ffx264 3.1.6
3
+ * Added support for batch encoding mode, to be activated with the
4
+ new -b option. It's used to encode directories with video files
5
+ * Renamed variable $mode to $encmode for clarity
6
+ * Reworked the input/output code
7
+ * Instead of relying on a config var to set the subtitles amount
8
+ to support, ask the user each time to provide it. Makes the
9
+ code less complex and easier to extend in the future. Bumps up
10
+ config file version to 26
11
+ * Check if the X264PARAMS var is missing from config in case we're
12
+ not using an x264 preset
13
+ * Updated the man page
14
+
15
2016-11-12 - ffx264 3.1.5
16
* Added support for importing external srt/ssa subtitles for the
17
mkv, m2ts, mts and ts containers
18
ffx264-3.1.5.tar.gz/ffx264 -> ffx264-3.1.6.tar.gz/ffx264
Changed
566
1
2
#
3
# Small script to encode to H.264/AVC video using FFmpeg and libx264.
4
# Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org>
5
-# Version: 3.1.5
6
-# Date: 2016-11-12
7
+# Version: 3.1.6
8
+# Date: 2016-11-13
9
#
10
# ffx264 is free software ; you can redistribute it and/or modify
11
# it under the terms of the GNU General Public License as published by
12
13
brown() { echo -e "\e[0;33m$1\e[0;39;49m"; }
14
error() { echo -e "\e[1;31m$1\e[0;39;49m"; }
15
16
-version="3.1.5"
17
+version="3.1.6"
18
19
CFG="$HOME/.ffx264"
20
-cfgversion="25"
21
+cfgversion="26"
22
23
genconfig_func() {
24
cat<<EOF>>"$CFG"
25
26
# detected audio tracks
27
MAX_AUD_TRACKS="2"
28
29
-# Set to "n" to disable subtitles
30
+# Enable subtitles support?
31
# Note: not all containers support
32
# all types of subs!
33
SUBS="y"
34
35
-# Max amount of subtitles to support
36
-# Any non-zero value will do. Set it
37
-# to "auto" to ask for as many as
38
-# detected subtitles
39
-MAX_SUBS="1"
40
-
41
# Copy original metadata from input?
42
METADATA="n"
43
44
45
EOF
46
}
47
48
-while getopts ":v :m: :c: :p: :t: :e :r :h" opt; do
49
+while getopts ":v :b :e :r :h :m: :c: :p: :t:" opt; do
50
case "$opt" in
51
v)
52
echo "$version"
53
54
exit 1
55
;;
56
esac
57
- mode="$OPTARG"
58
+ encmode="$OPTARG"
59
+ ;;
60
+ b)
61
+ batchmode="1"
62
;;
63
c)
64
if [ ! -f "$OPTARG" ]; then
65
66
echo " 2p (2-pass mode)"
67
echo " crf (constant rate factor mode)"
68
echo
69
+ brown " -b"
70
+ echo " Activate batch encoding mode. This mode is used to encode"
71
+ echo " directories with video files in them."
72
+ echo
73
brown " -c /path/to/file/preset.txt"
74
echo " Load a custom preset file. An example 'preset.txt' file"
75
echo " is included with the ffx264 package. This option can also"
76
77
done
78
79
if [ ! -z "$PRSTFILE" ]; then
80
- if [ ! -z "$(grep '^X264PARAMS' "$PRSTFILE")" ]; then
81
- if [ ! -z "$vpreset" -o ! -z "$vtune" ]; then
82
+ if [ ! -z "$vpreset" -o ! -z "$vtune" ]; then
83
+ if [ ! -z "$(grep '^X264PARAMS' "$PRSTFILE")" ]; then
84
echo
85
error "-> x264 presets/tune profiles are mutually exclusive with custom presets!"
86
echo
87
88
exit 1
89
fi
90
fi
91
+else
92
+ if [ -z "$vpreset" ]; then
93
+ if [ -f "$CFG" -a -z "$(grep '^X264PARAMS' "$CFG")" ]; then
94
+ echo
95
+ error "-> The X264PARAMS variable is commented out"
96
+ error " or missing from '$CFG'"
97
+ echo
98
+ error "-> Regenerating config file!"
99
+ rm -f "$CFG"
100
+ genconfig_func
101
+ echo
102
+ fi
103
+ fi
104
fi
105
106
brown " __ __ ____ __ _ _ "
107
108
if [ ! -x "$FFMPEG" ]; then
109
error "-> ffmpeg is missing from your system!"
110
error "-> Check the config in '$CFG'"
111
+ echo
112
exit 1
113
fi
114
else
115
FFMPEG="$(which ffmpeg 2>/dev/null)"
116
if [ ! -x "$FFMPEG" ]; then
117
error "-> ffmpeg is missing from your system!"
118
+ echo
119
exit 1
120
fi
121
fi
122
123
if [ ! -x "$FFPROBE" ]; then
124
error "-> ffprobe is missing from your system!"
125
error "-> Check the config in '$CFG'"
126
+ echo
127
exit 1
128
fi
129
else
130
FFPROBE="$(which ffprobe 2>/dev/null)"
131
if [ ! -x "$FFPROBE" ]; then
132
error "-> ffprobe is missing from your system!"
133
+ echo
134
exit 1
135
fi
136
fi
137
138
-printf "Specify the Input File: "
139
-read -e input
140
+if [ -z "$OUTDIR" ]; then
141
+ error "-> OUTDIR is not set in the config file!"
142
+ error "-> Check your config in '$CFG'"
143
+ echo
144
+ exit 1
145
+else
146
+ mkdir -p "$OUTDIR" 2>/dev/null
147
+ if [ $? != 0 ]; then
148
+ error "-> Could not create the output directory!"
149
+ error "-> Check your config in '$CFG'"
150
+ echo
151
+ exit 1
152
+ fi
153
+fi
154
+
155
+if [ ! -z "$batchmode" ]; then
156
+ error "-> Note: batch mode is in effect!"
157
+ error "-> Be careful which settings you use as they will"
158
+ error " apply to all files and may cause problems!"
159
+ echo
160
+ printf "Specify a File from the Directory to Encode from: "
161
+ read -e input
162
+else
163
+ printf "Specify the Input File: "
164
+ read -e input
165
+fi
166
+
167
if [ ! -f "$input" ]; then
168
error "-> No such file!"
169
exit 1
170
fi
171
172
-printf "Specify a Name for the Output: "
173
-read -e output
174
-if [ -z "$output" ]; then
175
- error "-> You have to provide a name for the output!"
176
- exit 1
177
+if [ ! -z "$batchmode" ]; then
178
+ OUTPUT="$OUTDIR/$(basename $0)_$$"
179
+ printf "Specify the Output Directory [default is $OUTPUT]: "
180
+ read -e output
181
+ test -z "$output" && OUTPUT="$OUTPUT/\$i" || OUTPUT="$output/\$i"
182
+ mkdir -p "$(dirname "$OUTPUT")" 2>/dev/null
183
+ if [ $? != 0 ]; then
184
+ error "-> Could not create the output directory!"
185
+ exit 1
186
+ fi
187
else
188
+ printf "Specify a Name for the Output: "
189
+ read -e output
190
+fi
191
+
192
+if [ -z "$batchmode" ]; then
193
+ if [ -z "$output" ]; then
194
+ error "-> You have to provide a name for the output!"
195
+ exit 1
196
+ fi
197
if [ ! -z "$(echo "$output" | grep '/')" ]; then
198
mkdir -p "$(dirname "$output")" 2>/dev/null
199
if [ $? != 0 ]; then
200
- error "-> Could not create output directory!"
201
+ error "-> Could not create the output directory!"
202
exit 1
203
fi
204
OUTPUT="$output"
205
else
206
OUTPUT="$OUTDIR/$output"
207
fi
208
- # Check if output dir is writable
209
- WRITE="$(dirname "$OUTPUT")/.ff_writable$$"
210
- touch "$WRITE" 2>/dev/null
211
- if [ $? != 0 ]; then
212
- error "-> Specified output directory is not writable by user '$(id -un)'"
213
- exit 1
214
- else
215
- rm -f "$WRITE"
216
- fi
217
-
218
- if [ -z "$CONFMT" ]; then
219
- printf "Which Container Format to use? [default is mkv]: "
220
- read confmt
221
- test -z "$confmt" && CONFMT="mkv" || CONFMT="$confmt"
222
- fi
223
-
224
- CONFMT="$(echo "$CONFMT" | tr '[:upper:]' '[:lower:]')"
225
-
226
- OUTPUT="$OUTPUT.$CONFMT"
227
+fi
228
+
229
+# Check if output dir is writable
230
+WRITE="$(dirname "$OUTPUT")/.ff_writable$$"
231
+touch "$WRITE" 2>/dev/null
232
+if [ $? != 0 ]; then
233
+ error "-> Specified output directory is not writable by user '$(id -un)'"
234
+ exit 1
235
+else
236
+ rm -f "$WRITE"
237
+fi
238
239
- if [ -x "$(which realpath 2>/dev/null)" ]; then
240
+if [ -z "$CONFMT" ]; then
241
+ printf "Which Container Format to use? [default is mkv]: "
242
+ read confmt
243
+ test -z "$confmt" && CONFMT="mkv" || CONFMT="$confmt"
244
+fi
245
+
246
+CONFMT="$(echo "$CONFMT" | tr '[:upper:]' '[:lower:]')"
247
+
248
+OUTPUT="$OUTPUT.$CONFMT"
249
+
250
+if [ -x "$(which realpath 2>/dev/null)" ]; then
251
+ if [ ! -z "$batchmode" ]; then
252
+ if [ "$(realpath -s "$(dirname "$input")")" = "$(realpath -s "$(dirname "$OUTPUT")")" ]; then
253
+ error "-> Input directory matches output directory!"
254
+ exit 1
255
+ fi
256
+ else
257
if [ "$(realpath -s "$input")" = "$(realpath -s "$OUTPUT")" ]; then
258
error "-> Input file matches output file!"
259
exit 1
260
fi
261
fi
262
-
263
+fi
264
+
265
+if [ -z "$batchmode" ]; then
266
if [ -e "$OUTPUT" ]; then
267
echo
268
error "-> Renaming existing file to '$OUTPUT.old'"
269
echo
270
mv -f "$OUTPUT" "$OUTPUT.old"
271
fi
272
-
273
- case "$CONFMT" in
274
- mp4|m4v|mov) movflags="-movflags +faststart" ;;
275
- avi|m2ts|mts|ts) annexb="-bsf:v h264_mp4toannexb" ;;
276
- mkv|flv) true ;;
277
- *)
278
- error "-> H.264 video not supported by chosen container!"
279
- error "-> Supported containers are: mkv, mp4, mov, m4v, m2ts, mts, ts, flv and avi"
280
- error "-> Check your config file, if needed, in '$CFG'"
281
- exit 1
282
- ;;
283
- esac
284
-
285
- printf "Output to Additional Container Formats? [y/N]: "
286
- read acf
287
- if [ "$acf" = "y" -o "$acf" = "Y" ]; then
288
- printf "Specify the Container Formats [example: mp4,m2ts,mov - press 'Enter' to skip]: "
289
- read econ
290
- test ! -z "$econ" && extracon="$(echo "$econ" | sed 's|,| |g' | tr '[:upper:]' '[:lower:]')"
291
- if [ ! -z "$extracon" ]; then
292
- container_func() {
293
- case "$1" in
294
- mp4|mov|m4v|avi|flv)
295
- green "-> Note: additional container $i supports the following audio codecs:"
296
- ;;
297
- esac
298
- case "$1" in
299
- mp4) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|copy|nosound" ;;
300
- mov) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|flac|copy|nosound" ;;
301
- m4v) green "-> ac3|aac|fdk-aac|copy|nosound" ;;
302
- avi) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|pcm|flac|copy|nosound" ;;
303
- flv) green "-> aac|fdk-aac|mp3|copy|nosound" ;;
304
- other)
305
- error "-> H.264 video not supported by the $i container!"
306
- error "-> Supported containers are: mkv, mp4, mov, m4v, m2ts, mts, ts, flv and avi"
307
- echo
308
- exit 1
309
- ;;
310
- esac
311
- }
312
-
313
- for i in $extracon; do
314
- if [ "$i" = "$CONFMT" ]; then
315
- error "-> Additional container matches the main output container!"
316
- exit 1
317
- fi
318
+else
319
+ OUTPUT="$(readlink -f "$(dirname "$OUTPUT")/\${i%.*}.$CONFMT")"
320
+ CHDIR="cd \"$(readlink -f "$(dirname "$input")")\""
321
+ FORLOOP_START="for i in *; do"
322
+ CHKFILE_START="if [ -f \"\$i\" ]; then"
323
+ CHKFILE_END="fi"
324
+ FORLOOP_END="done"
325
+fi
326
+
327
+METATITLE="-metadata title=\"$(basename "${OUTPUT%.*}")\" -metadata:s:v:0 title=\"$(basename "${OUTPUT%.*}")\""
328
+
329
+case "$CONFMT" in
330
+ mp4|m4v|mov) movflags="-movflags +faststart" ;;
331
+ avi|m2ts|mts|ts) annexb="-bsf:v h264_mp4toannexb" ;;
332
+ mkv|flv) true ;;
333
+ *)
334
+ error "-> H.264 video not supported by the chosen container!"
335
+ error "-> Supported containers are: mkv, mp4, mov, m4v, m2ts, mts, ts, flv and avi"
336
+ error "-> Check your config file, if needed, in '$CFG'"
337
+ exit 1
338
+ ;;
339
+esac
340
+
341
+printf "Output to Additional Container Formats? [y/N]: "
342
+read acf
343
+if [ "$acf" = "y" -o "$acf" = "Y" ]; then
344
+ printf "Specify the Container Formats [example: mp4,m2ts,mov - press 'Enter' to skip]: "
345
+ read econ
346
+ test ! -z "$econ" && extracon="$(echo "$econ" | sed 's|,| |g' | tr '[:upper:]' '[:lower:]')"
347
+ if [ ! -z "$extracon" ]; then
348
+ container_func() {
349
+ case "$1" in
350
+ mp4|mov|m4v|avi|flv)
351
+ green "-> Note: additional container $i supports the following audio codecs:"
352
+ ;;
353
+ esac
354
+ case "$1" in
355
+ mp4) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|copy|nosound" ;;
356
+ mov) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|flac|copy|nosound" ;;
357
+ m4v) green "-> ac3|aac|fdk-aac|copy|nosound" ;;
358
+ avi) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|pcm|flac|copy|nosound" ;;
359
+ flv) green "-> aac|fdk-aac|mp3|copy|nosound" ;;
360
+ other)
361
+ error "-> H.264 video not supported by the $i container!"
362
+ error "-> Supported containers are: mkv, mp4, mov, m4v, m2ts, mts, ts, flv and avi"
363
echo
364
- case "$i" in
365
- mkv|m2ts|mts|ts)
366
- green "-> Note: additional container $i supports all the audio codecs"
367
- ;;
368
- flv)
369
- container_func flv
370
- error "-> Note: you may need to resample the audio to 44100, 22050 or 11025 Hz!"
371
- ;;
372
- mp4) container_func mp4 ;;
373
- mov) container_func mov ;;
374
- m4v) container_func m4v ;;
375
- avi) container_func avi ;;
376
- *) container_func other ;;
377
- esac
378
- done
379
+ exit 1
380
+ ;;
381
+ esac
382
+ }
383
+
384
+ for i in $extracon; do
385
+ if [ "$i" = "$CONFMT" ]; then
386
+ error "-> Additional container matches the main output container!"
387
+ exit 1
388
+ fi
389
echo
390
- fi
391
+ case "$i" in
392
+ mkv|m2ts|mts|ts)
393
+ green "-> Note: additional container $i supports all the audio codecs"
394
+ ;;
395
+ flv)
396
+ container_func flv
397
+ error "-> Note: you may need to resample the audio to 44100, 22050 or 11025 Hz!"
398
+ ;;
399
+ mp4) container_func mp4 ;;
400
+ mov) container_func mov ;;
401
+ m4v) container_func m4v ;;
402
+ avi) container_func avi ;;
403
+ *) container_func other ;;
404
+ esac
405
+ done
406
+ echo
407
fi
408
-
409
- METATITLE="-metadata title=\"$(basename "${OUTPUT%.*}")\" -metadata:s:v:0 title=\"$(basename "${OUTPUT%.*}")\""
410
fi
411
412
printf "Specify a Genre for the Content [press 'Enter' to skip]: "
413
414
fi
415
fi
416
417
-case "$mode" in
418
+case "$encmode" in
419
[1-2]p)
420
printf "Specify the desired Video Bitrate in kbps [default is 8000]: "
421
read vbtr
422
423
case "$infps" in
424
24/1|25/1|24000/1001|30000/1001) true ;;
425
""|*)
426
- error "-> No value or unsupported value given!"
427
+ error "-> Unsupported or no value given!"
428
exit 1
429
;;
430
esac
431
432
video_subtitles_func() {
433
case "$1" in
434
infile)
435
- if [ "$MAX_SUBS" = "auto" ]; then
436
- test "$SUBNR" = "0" && MAX_SUBS="1" || MAX_SUBS="$SUBNR"
437
- fi
438
- for i in $(eval echo "{1..$MAX_SUBS}"); do
439
+ printf "How many Subtitles to Copy?: "
440
+ read subcp
441
+ case "$subcp" in
442
+ [1-9]*) SUBCP="$subcp" ;;
443
+ ""|*)
444
+ error "-> Invalid or no value given!"
445
+ exit 1
446
+ ;;
447
+ esac
448
+ for i in $(eval echo "{1..$SUBCP}"); do
449
submapval[i]="$(($i-1))"
450
printf "Sub $i: Specify a Subtitle to Copy [example: 0:2]: "
451
read subnr[i]
452
453
done
454
fi
455
printf "How many External Subtitles to Add?: "
456
- read subamount
457
- case "$subamount" in
458
- [1-9]*) MAX_SUBS="$subamount" ;;
459
+ read subext
460
+ case "$subext" in
461
+ [1-9]*) SUBEXT="$subext" ;;
462
""|*)
463
- error "-> Invalid value!"
464
+ error "-> Invalid or no value given!"
465
exit 1
466
;;
467
esac
468
- for i in $(eval echo "{1..$MAX_SUBS}"); do
469
+ for i in $(eval echo "{1..$SUBEXT}"); do
470
test ! -z "${submapval[*]}" && submap[i]="$((${submapval[-1]}+$i))" || submap[i]="$(($i-1))"
471
printf "Sub $i: Specify the Subtitle File: "
472
read -e sub[i]
473
474
echo
475
green "$SUBSDETECT"
476
echo
477
+ green "-> Detected $SUBNR subtitles"
478
error "-> Note: not all containers support all types of subs!"
479
else
480
error "-> Could not detect any subtitles!"
481
- SUBNR="0"
482
fi
483
echo
484
- if [ "$MAX_SUBS" = "auto" ]; then
485
- error "-> Note: MAX_SUBS variable is set to \"auto\" in the config file!"
486
- error "-> This means it will ask for as many as detected subtitle tracks"
487
- error " and you cannot skip them!"
488
- echo
489
- fi
490
brown " Subtitles"
491
brown " ~~~~~~~~~"
492
echo " 0 -> Copy subtitles from the input file"
493
494
error " been disabled as it is incompatible with audio stream copy!"
495
fi
496
497
-case "$mode" in
498
+case "$encmode" in
499
[1-2]p)
500
# Haven't found a reliable way to make it work with
501
# FLAC and PCM audio so just skip this if one of
502
503
esac
504
}
505
506
-case "$mode" in
507
+case "$encmode" in
508
1p) pass="1-pass" ;;
509
2p) pass="2-pass" ;;
510
- crf|"") pass="CRF"; mode="crf" ;;
511
+ crf|"") pass="CRF"; encmode="crf" ;;
512
esac
513
514
echo
515
green "-> Starting to encode in $pass mode..."
516
-green "-> Outputting to: $OUTPUT"
517
+test -z "$batchmode" && OUT="$OUTPUT" || OUT="'$(dirname "$OUTPUT")' directory"
518
+green "-> Outputting to: $OUT"
519
echo
520
color_func blue && printf "Starting to encode in: " && counter_func
521
color_func normal && echo
522
523
-OUTFILE="$(dirname "$OUTPUT")/$(basename "${OUTPUT%.*}" | sed 's| |_|g')"
524
+
525
+if [ -z "$batchmode" ]; then
526
+ OUTFILE="$(dirname "$OUTPUT")/$(basename "${OUTPUT%.*}" | sed 's| |_|g')"
527
+else
528
+ OUTFILE="$(dirname "$OUTPUT")/$(basename $0)_batch$$"
529
+ input="\$i"
530
+fi
531
532
encoder_func() {
533
case "$1" in
534
1p|crf)
535
- test "$mode" = "1p" && pmode="bitrate=$vbitrate" || pmode="crf=$CRF"
536
+ test "$encmode" = "1p" && pmode="bitrate=$vbitrate" || pmode="crf=$CRF"
537
OPTS1="${EXTSUBS[*]} -map 0:0 -disposition:v:0 default $ofps $annexb $NOSUBS $MDATA $CHPS $METATITLE $METAGENRE $METAYEAR $METACOMMENT $vfilters $sws"
538
OPTS2="${audparams[*]} ${auddis[*]} ${subcopy[*]} ${subcpy[*]} ${subdis[*]} ${subdispo[*]} $strict $movflags $METACOVER \"$OUTPUT\""
539
;;
540
541
542
echo "#!/usr/bin/env bash" > "$OUTFILE.sh"
543
echo "" >> "$OUTFILE.sh"
544
-encoder_func $mode >> "$OUTFILE.sh"
545
+if [ ! -z "$batchmode" ]; then
546
+ echo "$CHDIR" >> "$OUTFILE.sh"
547
+ echo "" >> "$OUTFILE.sh"
548
+ echo "$FORLOOP_START" >> "$OUTFILE.sh"
549
+ echo "$CHKFILE_START" >> "$OUTFILE.sh"
550
+fi
551
+encoder_func $encmode >> "$OUTFILE.sh"
552
echo "" >> "$OUTFILE.sh"
553
if [ ! -z "$extracon" ]; then
554
echo "grn() { echo -e \"\e[1;32m\$1\e[0;39;49m\"; }" >> "$OUTFILE.sh"
555
556
done
557
echo "echo" >> "$OUTFILE.sh"
558
fi
559
+if [ ! -z "$batchmode" ]; then
560
+ echo "$CHKFILE_END" >> "$OUTFILE.sh"
561
+ echo "$FORLOOP_END" >> "$OUTFILE.sh"
562
+fi
563
chmod +x "$OUTFILE.sh"
564
565
source "$OUTFILE.sh"
566
ffx264-3.1.5.tar.gz/ffx264.1 -> ffx264-3.1.6.tar.gz/ffx264.1
Changed
21
1
2
3
.SH SYNOPSIS
4
.B ffx264
5
-[\-m <mode>] [\-p <preset>] [\-t <tune>] [\-v|\-e|\-r|\-h] [\-c <preset/config file>]
6
+[\-m <mode>] [\-p <preset>] [\-t <tune>] [\-b|\-v|\-e|\-r|\-h] [\-c <preset/config file>]
7
.br
8
9
.SH DESCRIPTION
10
11
.RE
12
.
13
.TP
14
+.B -b
15
+Activate batch encoding mode. This mode is used to encode directories
16
+with video files in them.
17
+.TP
18
.B -c /path/to/file/preset.txt
19
Load a custom preset file. The package includes an example preset file.
20
This option can also be used to load a custom configuration file instead
21