четверг, 22 мая 2008 г.

Brainbench

Вот сегодня сходил к работодателю на собеседоваие, уже 2й раз поподается что на собеседованиях просят пройти онлайн тест на brainbench.com
Вобщем для самопроверки помоему самое то!, вопросы можно оценивать и высказываться по поводу их качества
Система работает уже давно и а данный момент - не все тесты и не всегда можно сдать бесплатно.. но так как все мы любим наши обычаи, вот несколько ключиков для беплатной здачи
pcworld536
fbla2008
pbl2008
pd2008
последние 3 нашел на http://www.fbla-pbl.org/web/page/593/sectionid/587/pagelevel/2/fbla.asp вобщем как говорят в тырнете вегда можно найти ключики, так же как то можно провернуть это дело с тестовым корпоративным аккаунтом, но мне это как то пока в ломак.
для себя из этого теста сделал вывод что стою на самом начале нормального программиста., средний бал по тестам 3 :(, (20 из 40 вопросов), - ну зато есть куда рости.




вот собственно то что я пока сдавал :)

суббота, 3 мая 2008 г.

avi2giff

Вот вобщем то и накалякал скрипт, попозже если стану поумней - нужно будет переписать некоторые моменты, и дополнить но вобщем работает - и для маленьких файликов самое то :) для скрипта необходимы пакеты imagemagick и ffmpeg


#/bin/bash
FILE_NAME=$1
FRAMES=5

#get file info (from stderr)
FILE_LENGTH=`ffmpeg -i $FILE_NAME 2>&1 |grep Dura|awk '{print $2}'|awk -F . '{print $1}'`
HOUR=`echo $FILE_LENGTH|awk -F : '{print $1}'`
MIN=`echo $FILE_LENGTH|awk -F : '{print $2}'`
SEC=`echo $FILE_LENGTH|awk -F : '{print $3}'`

if [[ "$HOUR" -eq 00 && "$MIN" -eq 00 && "$SEC" -lt $FRAMES ]]
then FRAMES="$SEC"
fi

for f in `seq 1 $FRAMES`
do
let "h = $HOUR / $FRAMES * $f"
let "m = $MIN / $FRAMES * $f"
let "s = $SEC / $FRAMES * $f"
h=`printf '%02.2i' $h`
m=`printf '%02.2i' $m`
s=`printf '%02.2i' $s`
time=`echo $h:$m:$s`

ffmpeg -i $FILE_NAME -an -ss $time -r 1 -vframes 1 -an -s 128x96 -y -f mjpeg .screenTmp$f.jpg
done
convert -delay 20 -loop 0 .screenTmp*.jpg $FILE_NAME.gif
rm .screenTmp*.jpg

следующая миссия сделать скриншоты swf.

hello Hardy

Гыгы.. тока сделал файл mp4 чтоб посмотреть на плеере и тут такой косяк, при подключению к ноуту, тот то ребутится то просто смотрит на меня :) и нифига не делает :)

как оказалось косяк новой убунты
точно такая же проблема с Sony Walkman NWZ-S618F у другого человека
https://bugs.launchpad.net/ubuntu/+bug/209483

эхх пока ручками sudo mount /dev/sdb1 /media/usb :(

FFmpeg ошибки и установка, а также как nwz-s618 научился смотреть видео

Вобщем сижу и делаю сайт, и тут мне понадобилось автоматом клепать иконки, в формате .gif для небольших видеороликов. Полазив по интернету остановился на ffmpeg для нарезки скриншотов. и imagemagick для собирательства скриншотов в .gif (в ffmpeg конечно есть функция преобразования сразу в гиф, но как сделать промежуток больше чем 1кадр в секунду я не смог, да и качество меня не вполне брадовало)

Все бы хорошо, но 3 часа мучался с ошибкой

ffmpeg: error while loading shared libraries: libx264.so.54: cannot open shared object file: No such file or directory

какую фигню только не пробовал, и что не пытался - все напрасно
а ведь нужно делать иконки для видеофайлов

и о чюдо - после 2х часовой пробежки на роликах наконецто решился собрать ffmpeg сам! гы гы.. :) вот такой вот я лентяй - сижу под ubuntu и собирать что то самому я не привык.

https://wiki.ubuntu.com/ffmpeg - вот это вот статья оригинал по которой у меня и получилось его собрать. - до этого пробовал с других источников, и все время натыкался на ошибку отсутствующего модуля

ну вобщемто и все :), ffmpeg собрался без всяких проблем.
пока собирал :) мысли про работу ушли далеко на последний план и вспомнилось, что уже давно не смотрел видео на плеере. посмотрев историю браузера нашел тот скрипт который конвертирует видео в mp4

вот этой строчкой можно конвертировать видео в 320х240 x264 файл

ffmpeg -y -i INPUT.avi -threads auto -vcodec libx264 -b 250k -maxrate 768k \
-flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+parti8x8+partp8x8 -flags2 \
+mixed_refs -level 13 -refs 3 -subq 7 -trellis 2 -me 6 -g 300 -s 320x240 -ab 128k -ar\
44100 -ac 2 -acodec libfaac OUTPUT.mp4

чтоб каждый раз ее не вводить можно создать вот такой вот скрипт
(модифицированный от Eric Hewwitt's)

#!/bin/bash

input_file=$1
input_x=`ffmpeg -i "${input_file}" 2>&1 | sed '/Video:/!d' | sed 's/.* \([0-9]\{3,4\}\)x\([0-9]\{3\}\).*/\1/'`
input_y=`ffmpeg -i "${input_file}" 2>&1 | sed '/Video:/!d' | sed 's/.* \([0-9]\{3,4\}\)x\([0-9]\{3\}\).*/\2/'`
echo $input_x
echo $input_y
output_dir=$PWD
declare -i crop_tmp
crop_tmp=-$input_y/3*2+$input_x/2
declare -i crop
crop=$crop_tmp+$crop_tmp%2
echo $crop

ffmpeg -y -i "${input_file}" -threads auto -vcodec libx264 -b 250k -cropleft "${crop}" -cropright "${crop}" -aspect 1.333 -maxrate 768k -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+parti8x8+partp8x8 -flags2 +mixed_refs -level 13 -refs 3 -subq 7 -trellis 2 -me 6 -g 300 -s 320x240 -ab 128k -ar 44100 -ac 2 -vol 768 -acodec libfaac "${output_dir}/${input_file}_walkman.mp4"


для использования alkman INPUT.avi

ну вот пожалуй и все :), ну а к gif-кам мы вернемся чуть чуть попозже

Итак начнем :)

Вот и настал тот момент, когда я решил перенести заметки в то место где они постоянно будут доступны. Ибо за сервером ухаживать ну никак не охота.