Конвертация видео-файлов под Ubuntu: MJPG->XVID, 3GP(H264)->XVID…
Фотоаппараты обычно снимают видео в формате MJPG (MJPEG), который занимает слишком много места.
Смартфоны обычно снимают видео в формате 3GP (кодек h264), который тоже занимает много места…
Желательно такие видео-файлы сразу сконвертировать.
Я это делатю под Ubuntu пакетом – запускаю скрипт (sh), который получает список файлов и поочереди конвертирует их в любимый мной кодек xvid (и avi-контейнер). Обычно вечером запускаешь, и за ночь гигабайты видео-записей переконвертируются в автоматическом режиме… :-)
Хочу поделится своими скриптами… Может кому-то пригодятся, а может кто-то посоветует что-то лучшее…
1) MJPG -> XVID
MJPEG пишут фотоаппараты (например Canon), там звук 11 кГц (и моно).
Скрипт такой:
#!/bin/bash
# with multiple arguments i.e.: ls *.{avi,AVI} | xargs avi_to_avi_q4.sh
N=$#;
echo "Converting $N files:"
for ((i=0; i<=(N-1); i++))
do
filename1=${1%.*}
filename2=${filename1}_xvid_q4.avi
echo "converting" $1 "to" $filename2 "... ..."
mencoder "$1" -ovc xvid -oac mp3lame -srate 11000 -xvidencopts fixed_quant=4 -o $filename2
shift 1
done
Главная строка здесь:
mencoder оригинал.avi -ovc xvid -oac mp3lame -srate 11000 -xvidencopts fixed_quant=4 -o результат.avi
2) 3GP (H264) -> XVID
Смартфоны/телефоны на Android снимают в контейнер 3gp с кодеком H.264... причём там около 20 кадров в секунду... Разрешение камеры у меня 800 на 480 (5:3) - на это количество точек (пикселей) и расчитан мой скрипт:
#!/bin/bash
# with multiple arguments i.e.: ls *.{avi,AVI} | xargs 3gp_to_avi_q4.sh
N=$#;
echo "Converting $N files:"
for ((i=0; i<=(N-1); i++))
do
filename1=${1%.*}
filename2=~/путь/${filename1}_xvid_q4_800-480_20fps_22k.avi
echo "converting" $1 "to" $filename2 "... ..."
ffmpeg -i $1 -f avi -vcodec libxvid -s 800x480 -aspect 5:3 -acodec libmp3lame -ar 22050 -r 20 -qscale 4 $filename2
shift 1
done
Главная строке в скрипте - это:
ffmpeg -i оригинал.3gp -f avi -vcodec libxvid -s 800x480 -aspect 5:3 -acodec libmp3lame -ar 22050 -r 20 -qscale 4 результат.avi
Причём снижаю дискретизацию с 44 kHz до 22 kHz...
Квантайзер Q (уровень качества) ставлю обычно 4.. Нормально?