Есть у меня HD-видеокамера JVC. И эта камера при записи разбивает видео на маленькие кусочки и именует их каким-то своим, одной ей понятным, образом (подозреваю, что это 16-ричный формат). Просмотреть все эти кусочки в правильном порядке можно только если отсортировать их по дате.
Вот пример правильно отсортированных файлов:
MOV017.MOD
MOV018.MOD
MOV019.MOD
MOV01A.MOD
MOV01B.MOD
MOV01C.MOD
MOV01D.MOD
MOV01E.MOD
MOV01F.MOD
MOV020.MOD
MOV021.MOD
Поставил я перед собой задачу - склеить все эти маленькие файлики в один и пережать в нормальный XVID.
Кому интересно - добро пожаловать под кат.
Для этого я набросал небольшой скриптик, который в качестве параметра принимает имя директории, в которой лежит наша коллекция маленьких файлов, с помощью
mencoder'a клеит их в один, а потом, все тем же
mencoder'ом пережимает в AVI.
Вот сам скрипт:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/bin/sh
dir_name=$1
# Параметры аудиокодека
audio_opts="-oac mp3lame -lameopts cbr:br=64:mode=3"
# Параметры видеокодека
video_opts="-ovc xvid -xvidencopts bitrate=1500:me_quality=6:chroma_me:chroma_opt:hq_ac:trellis:max_bframes=2:vhq=4:bvhq=1:bf_threshold=30:quant_type=mpeg:nopacked:closed_gop:par=vga11:max_iquant=2:max_pquant=6:max_bquant=8"
# Применяемые фильтры
filter_opts="-vf lavcdeint,hqdn3d=2:1:2,softskip,scale=720:-2 -sws 1"
# Разные полезные вещи
other_opts="-aspect 16:9 -ffourcc DIVX"
# Поиск *.MOD файлов, сортировка и склеивание
mencoder `ls -t -r $dir_name/*.MOD` -oac copy -ovc copy -o $dir_name/input.mod
# Кодирование. 1-й проход
mencoder $dir_name/input.mod $other_opts $filter_opts $audio_opts $video_opts:pass=1 -o $dir_name/output.avi
# Кодирование. 2-й проход
mencoder $dir_name/input.mod $other_opts $filter_opts $audio_opts $video_opts:pass=2 -o $dir_name/output.avi
|
Недостаток этого скрипта в том, что он не обрабатывает пробелы в именах директорий. Если кто-то поможет решить эту проблему - буду благодарен.
Теперь немного по опциям:
-oac mp3lame -lameopts cbr:br=64:mode=3 - кодируем в MP3 с битрейтом 64, моно.
-ovc xvid -xvidencopts bitrate=1500 - кодируем с помощью XVID с битрейтом 1500. Остальные параметры заданы для максимального (?) качества.
-vf lavcdeint,hqdn3d=2:1:2,softskip,scale=720:-2 -sws 1 - применяем деинтерлейс, шумоподавление, масштабирование.
-aspect 16:9 - я снимал в широкоэкранном режиме и без этой опции все люди получились яйцеголовыми.
-ffourcc DIVX - для совместимости с теми проигрователями, которые настолько тупы, что не могут самостоятельно определить тип кодека (WMP)
Вот примерно так.