пятница, января 25, 2008

Как сделать ролик для загрузки на YouTube?

Имеется 12-минутный видеоролик в DVD-формате размером примерно 667 Мб. Нужно дать возможность посетителям некоторого сайта смотреть его. Первое, что приходит в голову - YouTube. И сразу же вопрос - как подготовить видео для заливки на YouTube?

Для начала выясним несколько моментов здесь.

Я не могу добавить видео со своего DVD-диска на YouTube. Что делать?
Файлы DVD (например VOB, IFO и BUP) нельзя добавлять на YouTube. Они не являются собственно видеофайлами, а используются как часть формата DVD. Мы рекомендуем формат MPEG4 (Divx, Xvid или SQV3 вместо h.264) при разрешении 640x480 со звуком MP3 (64 Кбит/с моно).
Видеофайлы каких форматов можно добавлять?
На YouTube можно добавлять видео в форматах WMV, AVI, MOV и MPG, записанные при помощи цифровых фотоаппаратов, видеокамер и мобильных телефонов.
В каком формате лучше всего добавлять видео, чтобы получить хорошее качество?
Мы рекомендуем следующие параметры:
  • Формат MPEG4 (Divx, Xvid)
  • Разрешение 640x480 (* новейшие рекомендации)
  • Звук в формате MP3
  • 30 кадров в секунду
Если вы подгоните видео под эти требования, ваши ролики на YouTube будут лучше смотреться.
Видео какого размера и длительности можно размещать на сайте?
Добавить видео можно двумя способами: при помощи программы загрузки одного файла или программы загрузки YouTube. В зависимости от выбранного способа размер видеофайла может составлять до 100 Мб и даже до 1 Гб.

Размер видеофайла, добавленного при помощи программы загрузки одного файла YouTube, не должен превышать 100 Мб. Чем длиннее видео, тем более сильное сжатие понадобится, чтобы оно уместилось в эти рамки. Именно поэтому большинство видео на YouTube длиной меньше пяти минут, а для всех видео действует предел в 10 минут.
Собственно, вырисовывается 3 этапа:
  1. Преобразование DVD в AVI.
  2. Приведение полученного файла к размеру, приемлемому для передачи на YouTube (для себя я определил его в пределах 20-25 Мб).
  3. Обрезка видео свыше 10 мин. (или разбивка на 2 части).
В принципе, первые два шага можно объединить. Операции будем производить с помощью программы mencoder.
Устанавливаем mencoder, если он еще не установлен:
$ sudo apt-get install mencoder
Преобразуем DVD в AVI с масштабированием:
$ mencoder VTS_01_1.VOB -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=200:keyint=250
-vf scale=425:350 -oac mp3lame -lameopts preset=medium -o VTS_01_1.avi
В результате получаем видеофайл размером 27 Мб. Продолжительность - 00:12:24.

Чтобы вложиться в лимит 10 мин. - обрезаем лишнее:
$ mencoder VTS_01_1.avi -ovc copy -oac copy -endpos 0:09:58 -o outfile.avi
или разбиваем на 2 части (например, по 6 мин.):
$ mencoder VTS_01_1.avi -ovc copy -oac copy -endpos 0:06:05 -o part1.avi
$ mencoder VTS_01_1.avi -ovc copy -oac copy -ss 0:06:00 -o part2.avi
Вот и всё - теперь можно заливать полученное видео на YouTube.

Материалы по теме:
P.S. Для mencoder есть графический фронтенд GMencoder, но об этом как-нибудь в следующий раз.
P.S.S. Результаты проведенной работы здесь.

понедельник, января 21, 2008

Пакетное преобразование фотографий

Есть папка с фотографиями с цифровой камеры (JPG, 3072x2048). Необходимо уменьшить все фото для публикации на сайте, например до 1536x1024. Допустим фотографий 50 шт. Можно сделать вручную. Но мы не ходим такими путями :-) Т. к. необходимость уменьшения фоток возникает периодически, для решения задачи был написан маленький скрипт (назовём его conv.sh) с использованием утилиты convert:
#!/bin/sh
for i in $ls./*.jpg $ls./*.JPG
do
if [ -f "$i" ]
then convert "$i" -resize 1536x1024 -quality 85 "$i"
fi
done
Скрипт запускаю в папке с фотографиями, которые нужно преобразовать, просто
$conv.sh
Будьте внимательны: при работе скрипта оригиналы фотографий перезапишутся уменьшенными копиями. Мне так удобнее – я сначала копирую фотки туда, куда мне нужно, а затем запускаю скрипт.

Как сделать по-другому читайте здесь.

При желании скрипт можно расширить для работы с несколькими разрешениями. Получится примерно так:
#!/bin/sh
case "$1" in
1)
size="1152x768"
;;
2)
size="1536x1024"
;;
3)
size="1920x1280"
;;
*)
echo "Script for converting photos to lower dimension --> Usage: conv.sh {1|2|3}"
echo "1 = 1152x768"
echo "2 = 1536x1024"
echo "3 = 1920x1280"
exit 1
esac

for i in $ls./*.jpg $ls./*.JPG
do
if [ -f "$i" ]
then convert "$i" -resize $size -quality 85 "$i"
fi
done
И для моего случая команда будет выглядеть следующим образом:
$conv.sh 2

Забирайте своё себе

Однажды Будда проходил со своими учениками мимо деревни, в которой жили противники буддистов. Жители деревни выскочили из домов, окружили Будду и учеников, и начали их оскорблять. Ученики тоже начали распаляться и готовы были дать отпор, однако присутствие Будды действовало успокаивающе. Но слова Будды привели в замешательство и жителей деревни, и учеников.

Он повернулся к ученикам и сказал:
— Вы разочаровали меня. Эти люди делают своё дело. Они разгневаны. Им кажется, что я враг их религии, их моральных ценностей. Эти люди оскорбляют меня, и это естественно. Но почему вы сердитесь? Почему вы позволили этим людям манипулировать вами? Вы сейчас зависите от них. Разве вы не свободны?
Жители деревни не ожидали такой реакции. Они были озадачены и притихли. В наступившей тишине Будда повернулся к ним:
— Вы всё сказали? Если вы не всё сказали, у вас ещё будет возможность высказать мне всё, что вы думаете, когда мы будем возвращаться.
Люди из деревни были в полном недоумении, они спросили:
— Но мы же оскорбляли тебя, почему же ты не сердишься на нас?
— Вы — свободные люди, и то, что вы сделали, — ваше право. Я на это не реагирую.
Я тоже свободный человек. Ничто не может заставить меня реагировать, и никто не может влиять на меня и манипулировать мною. Я хозяин своих проявлений. Мои поступки вытекают из моего внутреннего состояния. А теперь я хотел бы задать вам вопрос, который касается вас. Жители деревни рядом с вашей приветствовали меня, они принесли с собой цветы, фрукты и сладости. Я сказал им: «Спасибо, но мы уже позавтракали. Заберите эти фрукты с моим благословением себе. Мы не можем нести их с собой, мы не носим с собой пищу». Теперь я спрашиваю вас: «Что они должны делать с тем, что я не принял и вернул им назад?»
Один человек из толпы сказал:
— Наверное, они забрали это домой, а дома раздали фрукты и сладости своим детям, своим семьям.
Будда улыбнулся:
— Что же будете делать вы со своими оскорблениями и проклятиями? Я не принимаю их. Если я отказываюсь от тех фруктов и сладостей, они должны забрать их обратно. Что можете сделать вы? Я отвергаю ваши оскорбления, так что и вы уносите свой груз по домам и делайте с ним всё, что хотите.