У одних были проблемы с видео формата 3:4, другие по неизвестной причине валились на этапе кодирования аудиодорожки, третьи неправильно рассчитывали итоговый масштаб и телефон при попытке воспроизведения показывал только сообщение "Недействительный клип. Операция отменена".
Промучившись с существующими конвертерами я решил на их основе собрать свой, лишенный всех их недостатков. В результате получился такой код:
#!/bin/bash INPUT="$1" OUTPUT="$INPUT.nokia.mp4" # Битрейт видео VBITRATE=800 # Битрейт аудио ABITRATE=128 # Разрешение экрана телеофна SCALE="640:360" MENCODER="$(which mencoder 2>/dev/null)" MPLAYER="$(which mplayer 2>/dev/null)" # Определяем соотношение сторон исходного видео INWIDTH=$($MPLAYER "$INPUT" -identify -nosound -vo null -nocache -frames 1 | grep '^ID_VIDEO_WIDTH' | tail -n 1 | awk -F= '{print $2}') INHEIGHT=$($MPLAYER "$INPUT" -identify -nosound -vo null -nocache -frames 1 | grep '^ID_VIDEO_HEIGHT' | tail -n 1 | awk -F= '{print $2}') ASPECT=`echo "scale=4; $INWIDTH/$INHEIGHT" | bc` let "OUTWIDTH=((360*$INWIDTH/$INHEIGHT))" let "OUTHEIGHT=((640*$INHEIGHT/$INWIDTH))" # Рассчитываем соотношение сторон, в которое будем конвертировать if [[ $INWIDTH < 640 && $INHEIGHT < 360 ]] then SCALE="$INWIDTH:$INHEIGHT" else if [[ $ASPECT != 1.7777 ]] then if [[ $ASPECT > 1.7777 ]] then SCALE="640:$OUTHEIGHT" else SCALE="$OUTWIDTH:360" fi fi fi # Параметры кодирования видео одинаковы для обоих проходов MENC_PARAMS="-of lavf -lavfopts format=mp4 -oac lavc -ovc lavc -ofps 25 -af lavcresample=44100 -vf scale=$SCALE,harddup -lavcopts aglobal=1:vglobal=1:acodec=libfaac:vcodec=mpeg4:abitrate=$ABITRATE:vbitrate=$VBITRATE:keyint=50:mbd=1:vqmax=10:lmax=10" # Кодируем видео $MENCODER "$INPUT" -o /dev/null $MENC_PARAMS:vpass=1 $MENCODER "$INPUT" -o "$OUTPUT" $MENC_PARAMS:vpass=2 # Удаляем лог кодирования rm divx2pass.logЭтот скрипт использует двухпроходное кодирование, что дает лучшее качество, автоматически масштабирует размер изображения и удаляет за собой ненужный мусор.
Для использования скрипта создайте файл /usr/local/bin/v4nokia и сохраните в него код, приведенный выше. После этого зайдите в каталог с исходным видео и выполните команду:
v4nokia myvideo.avi
Где myvideo.avi — имя вашего видеофайла. Через некоторое время в том же каталоге появится файл myvideo.avi.nokia.mp4, который можно будет воспроизвести на телефоне. Этот конвертер подходит для Nokia 5530, 5800, 5230, X6, и любого другого телефона, построенного на платформе S60v5.
5 комментариев:
ниче не понятно. какой файл создавать в usr и как создавать там все неактивно
непонятно что в этом скрипте надо копировать а что просто комментарии
перепробовал с десяток gui конверторов в каждом из которых написано "вы с легкостью конвертнете avi в mp4" но в итоге нигде в mp4 не конвертнулось.и вот вроде норм скрипт но непонятно как его исп. а опять экспериментировать стремно скоко времени ушло на эти супер конверторы и не один не сделал то что надо.более того в пресетах нет нормальных моделей нокиа. есть только малоизвестные n800 n770
разобрался с теорией и скрипт заработал. конвертирует отлично и оч. удобен в использовании. всем нокиям рекомендую
Спасибо за скрипт, изменил и подправил некоторые параметры под убунту это acodec=libmp3lame и удалил параметр -ofps 25.
Отправить комментарий