Долго ковырялся перед тем, как нашел простое и быстрое решение.
Одного полного и четкого мануала по сабжу я не нашел, то была проблема установить ffmpeg, то подобрать к нему параметры.
Посему напишу как я решал вопрос. Получилось просто и быстро. Итак.
1. устанавливаем WinFFсобственно это GUI для ffmpeg, устанавливаем его, потом можно юзать GUI, можно юзать скрипт написанный мной(имхо скрипт удобнее)
почему ставим именно его? он за собой поставит ffmpeg со всеми нужными кодеками. Имхо очень удобно
ставиться он так:
http://code.google.com/p/winff/wiki/UbuntuInstallationкопирую сюда инструкцию для тех, кому лень лезть по ссылке:)
читать внимательно, не все перечисленные команды нужно вводить
If you use the winff.org repository you need to accept the key AAFE086A. To get that installed you can run:
wget --quiet --output-document=- "http://winff.org/ubuntu/AAFE086A.gpg" | sudo apt-key add -After that you need to add the repository to apt. You can do that by entering the line marked (1) below in /etc/apt/sources.list.d/winff.list. You will have to create that file, which can be done with the following command:
echo "deb http://winff.org/ubuntu lucid universe" | sudo tee /etc/apt/sources.list.d/winff.listOf course you need to change lucide to karmic or hardy or intrepid or jaunty if you have that. (You can also just add the line to /etc/apt/sources.list .)
You can now install WinFF directly by running:
sudo apt-get update && sudo apt-get install winffinterpid users also want to run:
sudo apt-get install libavcodec-unstripped-51 jaunty users also want to run:
sudo apt-get install libavcodec-unstripped-52 karmic and lucid users also want to run:
sudo apt-get install libavcodec-extra-52 2. настройка WinFF/ использование скриптатеперь, как я уже написал выше, у Вас есть два пути: - юзать гуй и юзать скрипт. По порядку:
2.1 GUIво многом хорошее решение, но не без изъянов.
запускаем winff, добавляем файлы для конвертации, ниже выбираем
Convert to: PSP и жмем конверт. Открывается терминал в котором ffmpeg конвертирует наши файлы. WinFF уже можно закрыть, с процессом конвертации он не связан. Иными словами WinFF помогает сформировать запрос для ffmpeg и все.
У меня при этом возникла проблемка - в пресетах(presets), т.е. в списке
Convert to у меня не оказалось PSP.
Придется добавить пресет в ручную.
Идем
Edit - Presets, тут
Import и импортируем файл, приложенный к данной теме. В нем содержится пресет для PSP.
Если по какой-то причине файл скачать в ручную не получилось - придется вбить настройки вручную. Они следующие:
pres. name
x264HQPSP169robertswain
pres. label
x264HQPSP169robertswain
pres. command line
-r 29.97 -vcodec libx264 -s 480x272 -aspect 16:9 -b 1250k -maxrate 4M -bufsize 4M -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method umh -subq 6 -trellis 1 -refs 2 -bf 1 -coder 1 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 1250k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 21 -acodec libfaac -ab 128k -ar 48000 -ac 2
output file ext.
mp4
Category
PSP
после добавления пресета можно приступать к конвертации.
2.2 СкриптМне GUI показался хорошим, но не отличным решением. Для "отличного"
решения моих задач я написал скрипт.
Я написал его под свои нужды, если пригодится Вам - мне будет приятно:)
Собственно что он делает - Вы кидаете в подготовленную папку все видео, которое хотите конвертировать. кидаете туда и скрипт. Запускаете его.
Он конвертирует все видео файлы в формат для psp и удаляет оригиналы(можно отключить). Т.е.
1. кинул в папку видео
2. кинул в папку скрипт
3. запустил скрипт
4. удалил скрипт
5. залил папку с потрохами на psp:)
собственно скрипт:
#!/bin/bash
#скрипт конвертирует под PSP все файлы в текущем каталоге и удаляет оригиналы
#использует ffmpeg установленный с winff(
http://code.google.com/p/winff/wiki/UbuntuInstallation)
#
threads="1" # сюда вписать кол-во потоков обработки, по дефолту 1, но можно увеличить чтобы увеличить нагрузку на проц
del="1" # удалять файл-оригинал? 1-да, 0-нет
parameters="-r 29.97 -vcodec libx264 -s 480x272 -aspect 16:9 -b 1250k -maxrate 4M -bufsize 4M -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method umh -subq 6 -trellis 1 -refs 2 -bf 1 -coder 1 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 1250k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 21 -acodec libfaac -ab 128k -ar 48000 -ac 2 -threads $threads"
for filename in *; do
filenewname="${filename%.*}.mp4"
case "$filename" in *.flv|*.ogm|*.avi|*.mkv|*.ogv|*.mpeg|*.mpg)
echo
echo
echo
echo
echo ................converting "$filename"
ffmpeg -i "$filename" $parameters "$filenewname"
echo ................done converting "$filename"
echo ................removing
if [ "$del" = "1" ]; then rm "$filename"; fi
echo ................done removing "$filename"
echo
esac
done
обратите внимание на параметры del и threads(строка 5 и 6) . Первый влияет на удаление файлов-оригиналов(у меня=1), второй на загрузку процессора(у меня=4)
в общем-то все, если какие-то есть вопросы или советы - пишите