Показаны сообщения с ярлыком ffmpeg. Показать все сообщения
Показаны сообщения с ярлыком ffmpeg. Показать все сообщения

вторник, 14 июня 2011 г.

Примеры для ffmpeg..

С рапиды пропали примеры, не знаю по какой причине - я их не трогал, ни у кого абуз не должно было к ним возникать.. может удалили, потому что долго никто их не качал?..

Факт в том, что я не помню, что там за примеры были и что показывали как делать :( Нашел у себя вот 2 проектика, подходящих на роль примеров, выложил: пример 1, пример 2

Один просто портированный пример из самого ffmpeg-а, второй - чтение мр3 файла

среда, 16 июня 2010 г.

Разгул примеров для программирования..

Действительно, с рапидшары пропал пример для декодирования мр3; поправлю положение, показав еще раз – как использовать библиотеки от ffmpeg для декодирования звукового файла и последующего его кодирования в мр3

Правда я не разбирался никогда с созданием файлов, с наскоку не получилось – поэтому я пишу только мр3 – потому что у файла там структуры никакой – просто фреймы подряд (ну это если тегов нет)

вторник, 15 июня 2010 г.

Кодируем видео для psp..

Собираемся на море солидно, везем с собой запас фильмов/книг и аудиокниг, чтобы скучно не было в дороге и в часы сиесты, когда очень уж жарко; кины для тв будут жить в нетбуке, а в дороге малый просит записать ему в psp “Доктора Кто” и прочего

Но psp (и iPod, да и мой андроид) – штука привиредливая, mkv там разные не кушает, ему подавай mp4 с определенными настройками – зато “правильные” фильмы смотреть на psp/iPod – одно удовольствие

Одно “но” – конвертить видео, даже с нынешними мощностями и кучей ядер у процессора – все равно длинное и скучное занятие; но у меня же в кладовке круглые сутки пыхтит компьютер, не фонтан по нынешним меркам, но круглые сутки ведь! Вот он и займется этим неблагодарным делом, видео кодировать..

четверг, 29 апреля 2010 г.

ffmpeg..

Я не настолько плох, как оказалось, не работал код с обновленными dll не из-за ошибок в заголовках, а из-за неправильно собранных dll – скачал собранные dll и все заработало; так что надо было обновить еще больше компиляторов и прочей чухни, чтобы оно скомпилилось и заработало и у меня (чужие dll мне не подходят, мне не надо 90% кодеков и 99% форматов, которые поддерживаются, поэтому я собираю “для себя”)

Так что обновленные pas-заголовки для dll из ffmpeg выложил на рапидшару (89 кб)

Несмотря на то, что меняются внутренние структуры (например нет больше типа TCodecType), все собралось без изменений.. тесчу, пока работает..

У меня в почте лежало несколько писем от пользователей, с комментами, багофиксами или пожеланиями; явные баги исправлял, а прочее оставлял “на потом”, но когда дело дошло до “потом”, почта успела потеряться (во время очередной переустановки винды.. как-то решил, что ничего важного в почте нет и не стал переносить письма).. Такой вот “упс..”

среда, 28 апреля 2010 г.

Есть две новости..

.. плохая и хорошая

Хорошая: не в лоб так по лбу решил забороть конвертацию в mpeg-файлы обновлением ffmpeg-ных библиотек, последний раз обновлял больше года назад. Пришлось как обычно подоустанавливать компиляторы разные и прочую чухню, но собрал, получил dll-ки. Потратил полтора дня, привел в соответствие h-файлам свои pas-файлы

Плохая: не работает код, который позавчера работал :)

четверг, 25 июня 2009 г.

Обновил ffmpeg...

Ну не ffmpeg, а хедеры паскалевские для него, ну и пересобрал dll-ки есессно

Основательно не тестил, но пока тьфу-тьфу-тьфу старые проекты вроде работают.. "Портировалось" практически безболезнено, в основном менял в uses avutil на pixfmt

Брать тут (тут и хедеры, и dll готовые.. все из svn ~ 18-19 июня), если чего не работает - пробуйте жаловаться..

четверг, 2 апреля 2009 г.

Замена кадров в 3gp файле

Нужен код, реализующий с помощью ffmpeg замену выбранных исходных кадров в 3gp видео на свои.

Не так все просто на самом деле с этим.. если бы мне надо было для моих проектов, я бы может и попарился, а так - времени нет

Смысл в том, что тут есть может не очень очевидная проблема: (очень грубое описание) при кодировании видео кодер берет картинку первого кадра и упаковывает ее каким-нибудь продвинутым способом - этот кадр называется "ключевым"; затем берется картинка следующего кадра, определяются различия с предыдущей картинкой и упаковывается только различие между кадрами, так продолжается до следующего ключевого кадра (частота которых может задаваться)

При распаковке декодер распаковывает ключевой кадр, получает полную картинку; затем распаковывается только "разница" картинок и накладывается на предыдущий кадр, получаем 2-й кадр полностью

А теперь скажем надо заменить 5-й кадр в видеоряде: если просто вставить на место 5-го кадра свой упакованный кадр, даже отметив, что он ключевой - как декодер декодирует и покажет 6-й кадр? Он ведь декодирует только разницу в картинках и наложит ее на вставленый кадр - получим мешанину на экране, мешанина будет видна какое-то время - пока не раскодируется очередной ключевой кадр

Метод решения в лоб - декодировать подряд все кадры, тут же кодируя их назад, в нужный момент подменяя картинку.. самый простой способ, но дурная работа при этом составит процентов 90 наверное, смотря сколько кадров подменяется..

Метод правильный - тот же способ, но только в пределах оджного GOP (group of picures, группы кадров между двумя ключевыми кадрами)

пятница, 21 ноября 2008 г.

Обновление FFMPEG

Обновил/пересобрал сегодня (21.11.2008) ffmpeg из svn-а, пофиксил хедеры паскалевские, мои проекты как будто бы работают :)

Положил на рапиду архив с готовыми dll-ками и архив с хедерами и некоторыми примерами

Архив с dll (rar, 1959 кб)
Архив с исходниками (rar, 76 кб)

четверг, 9 октября 2008 г.

вторник, 23 сентября 2008 г.

FFMPEG: пример

Вот тут лежит обьяснение азов работы с ffmpeg-ом (блин, ну не с ffmpeg-ом конечно, а с библиотеками из проекта), спортировал пример на паскаль, положил на рапиду архив

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

Отсебятины добавил - swscale вместо imgconvert (ибо deprecated) и процедурку сохранения картинок, чтобы посмотреть на результат

Лежит вот - http://rapidshare.com/files/147700653/testProject.zip.html

четверг, 11 сентября 2008 г.

ffmpeg + Delphi = лежит тут

Выложил на рапидшару последние паскальные заголовки для либ из ffmpeg, вдруг на работе комп ляпнется, svn ляпнется, дома комп ляпнется, svn ляпнется - и что делать? Рапидшара не ляпнется никогда :)

заголовки в pas (обновлено по svn на 24.09.2008)
скомпиленные dll (из svn на 07.10.2008)

четверг, 4 сентября 2008 г.

ffmpeg + lame

Еще про ffmpeg - добавление поддержки lame

Сначала надо скачать исходники собственно lame и положить куда-нибудь - пусть внутрь папки ffmpeg

Дальше надо отсюда (nasm sources) скачать исходники nasm:
Распаковываем архив в c:\msys, заходим в консоль, пишем:

cd c:/msys/nasm-2.03.01
./configure --prefix=/mingw
make
make install

Затем в консоли пишем:

cd c:/ffmpeg/lame-3.97
./configure --prefix=/mingw --disable-shared --enable-nasm
make
make install


Все должно скомпилится и файлы разложиться по правильным полочкам; после чего переходим к исходникам ffmpeg и собираем все (моя цель - получить dll-ки, которые я буду использовать в своей программе):

cd c:/ffmpeg
./configure --enable-memalign-hack --enable-w32threads
--enable-libmp3lame --enable-shared --disable-static --enable-gpl
--enable-swscale --extra-cflags=-I/mingw/include/lame
--extra-ldflags=-L/mingw/lib
make
make install

Все, будто бы работает

Опять ffmpeg...

Мне опять надо пересобрать ffmpeg :( - но я то уже подкован и почти помню свои себе (недописанные правда) инструкции; инструкции обновились:

Идем на SourceForge.net в раздел MinGW - Minimalist GNU for Windows, ищем там MSYS Base System, из которого качаем:
Затем нужны файлы из раздела MinGW Runtime:
Еще нужен файл в разделе MinGW API for MS-Windows:
Из раздела GNU Binutils нужны:
Из GNU Make:
Из GCC Version 3:
Из GCC Version 4:
Делаем папку, скажем c:\msys; в эту папку распаковываем первые 4 архива. Распаковываем в таком порядке, соглашаясь на перезапись файлов; файлы из coreutils норовят распаковаться в отдельную папку - не давать.

Дальше надо в папке msys сделать папку mingw, в которую распаковать остальные архивы.

Когда все файлы на месте, надо поправить msys.bat (в c:\msys) - добавить в него первой строчкой

call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"

Строчка нужна, чтобы компилить windows-совместимые dll-ки (ну и студия должна быть установлена конечно для этого)

Следующий шаг - надо открыть файл c:\msys\etc\fstab и добавить в него строку

c:/msys/mingw /mingw

Чтобы не напрягать глаза, пытаясь прочитать вывод консоли, можно еще поправить строку 88 в msys.bat (или 89... смотря как добавлять вот ту строчку выше в этот файл) - вот так например

start ... Courier-16 ... -geometry 100x50 -e /bin/sh --login -i

Ну и в принципе на этом все... Запускаем msys.bat, попадаем в консоль, вводим (если исходники ffmpeg лежат скажем в c:\ffmpeg):

cd c:/ffmpeg
./configure --enable-memalign-hack --cc=gcc-sjlj --enable-libmp3lame --enable-shared
make
make install


Ждем, ждем, ждем, и через какое-то время получаем результат (проверено на "чистой" виртуалке); результат лежит в папке c:\msys\local - в bin лежат ffmpeg.exe и dll файлы (если заказывались), в include лежат *.h файлы, достаточные для использования полученных dll, в lib лежат еще какие-то файлы, которые мне не нужны, ибо пишу в делфи