За то время, пока я обживаюсь в linux, в мои руки попадались некоторые портативные устройства, позволяющие смотреть видеофайлы. Для путешествующего каждый день утром и вечером в электричках - актуально. Был коммуникатор с QVGA экраном (320x240) и есть таблетка Nokia N810 (800x480). С каждым из них возникла одна и та же задача: из имеющегося видео сделать клип под экран устройства. Чтож, нет ничего невозможного. Для решения задачи имеем: Ubuntu linux, mencoder, умелые ручки.
Все довольно просто. Чтобы кодировать файл для просмотра с приемлемым качеством на портативном устройстве:
mencoder file_in.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250 -vf scale=320:240 -o file_out.avi
Здесь вы меняете file_in.avi, file_out.avi, 320:240 на ваши параметры. Качество звука менять не люблю, поэтому "-oac copy" - копирую его как есть.
Для владельцев Nokia N810 - не пытайтесь сделать клип на полное разрешение экрана - видеопроцессор не потянет такую нагрузку. Видео высотой в 240 пикселей для просмотра в дороге - вполне достаточно, поверьте. Кроме того, используйте mplayer для этого устройства, и забудьте проблемы с субтитрами как страшный сон.
Так как лень двигатель прогресса, через некоторое время завелся скрипт
~/bin/mne
который несколько облегчает мне жизнь (если захотите использовать, не забудьте сделать его исполняемым).
Текст скрипта:
#!/bin/bash
if [ $3 ]; then A=`echo "-aid $3"`; else A=""; fi;
case "$2" in
nokia)
[ -d nokia ] || mkdir nokia
echo "ДЛЯ NOKIA N770/800/810 С СОХРАНЕНИЕМ СООТНОШЕНИЯ СТОРОН"
sleep 2
mencoder $1 -mc 0 -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:v4mv:vqscale=2:mpeg_quant -vf scale=-2:240 $A -o nokia/$1
#mencoder $1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250 -vf scale=-2:240 $A -o nokia/$1
exit 0
;;
*x*)
[ -d scale ] || mkdir scale
echo "$2 БЕЗ СОХРАНЕНИЯ СООТНОШЕНИЯ СТОРОН ОРИГИНАЛА"
sleep 2
W=`echo $2 | awk -Fx '{print($1)}'`
H=`echo $2 | awk -Fx '{print($2)}'`
mencoder $1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250:abitrate=128 -vf scale=$W:$H $A -o scale/$1
;;
*)
echo "======================================================================================================";
echo "Использование возможно с вариантами:"
echo "filename.avi nokia (для просмотра на Nokia N770/800/810 без тормозов)"
echo "filename.avi 320x240 (жестко по заданным параметрам, их можно изменить в таком-же формате)"
echo "После первого параметра можно добавить второй числовой, обозначающий номер звуковой дорожки, например"
echo "filename.avi nokia 1"
echo "для дублированных фильмов, содержащих оригинальный звук на 1 дорожке,"
echo "который вам нужен. Дорожки нумеруются с 0"
echo "======================================================================================================";
exit 1
;;
esac
Все довольно просто. Чтобы кодировать файл для просмотра с приемлемым качеством на портативном устройстве:
mencoder file_in.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250 -vf scale=320:240 -o file_out.avi
Здесь вы меняете file_in.avi, file_out.avi, 320:240 на ваши параметры. Качество звука менять не люблю, поэтому "-oac copy" - копирую его как есть.
Для владельцев Nokia N810 - не пытайтесь сделать клип на полное разрешение экрана - видеопроцессор не потянет такую нагрузку. Видео высотой в 240 пикселей для просмотра в дороге - вполне достаточно, поверьте. Кроме того, используйте mplayer для этого устройства, и забудьте проблемы с субтитрами как страшный сон.
Так как лень двигатель прогресса, через некоторое время завелся скрипт
~/bin/mne
который несколько облегчает мне жизнь (если захотите использовать, не забудьте сделать его исполняемым).
Текст скрипта:
#!/bin/bash
if [ $3 ]; then A=`echo "-aid $3"`; else A=""; fi;
case "$2" in
nokia)
[ -d nokia ] || mkdir nokia
echo "ДЛЯ NOKIA N770/800/810 С СОХРАНЕНИЕМ СООТНОШЕНИЯ СТОРОН"
sleep 2
mencoder $1 -mc 0 -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:v4mv:vqscale=2:mpeg_quant -vf scale=-2:240 $A -o nokia/$1
#mencoder $1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250 -vf scale=-2:240 $A -o nokia/$1
exit 0
;;
*x*)
[ -d scale ] || mkdir scale
echo "$2 БЕЗ СОХРАНЕНИЯ СООТНОШЕНИЯ СТОРОН ОРИГИНАЛА"
sleep 2
W=`echo $2 | awk -Fx '{print($1)}'`
H=`echo $2 | awk -Fx '{print($2)}'`
mencoder $1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250:abitrate=128 -vf scale=$W:$H $A -o scale/$1
;;
*)
echo "======================================================================================================";
echo "Использование возможно с вариантами:"
echo "filename.avi nokia (для просмотра на Nokia N770/800/810 без тормозов)"
echo "filename.avi 320x240 (жестко по заданным параметрам, их можно изменить в таком-же формате)"
echo "После первого параметра можно добавить второй числовой, обозначающий номер звуковой дорожки, например"
echo "filename.avi nokia 1"
echo "для дублированных фильмов, содержащих оригинальный звук на 1 дорожке,"
echo "который вам нужен. Дорожки нумеруются с 0"
echo "======================================================================================================";
exit 1
;;
esac