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

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-кам мы вернемся чуть чуть попозже

1 комментарий:

Анонимный комментирует...

Подтверждаю, Труъ =)