четверг, 22 мая 2008 г.
Brainbench
Вобщем для самопроверки помоему самое то!, вопросы можно оценивать и высказываться по поводу их качества
Система работает уже давно и а данный момент - не все тесты и не всегда можно сдать бесплатно.. но так как все мы любим наши обычаи, вот несколько ключиков для беплатной здачи
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
какую фигню только не пробовал, и что не пытался - все напрасно
а ведь нужно делать иконки для видеофайлов
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