← All posts tagged ffmpeg

github.com

Такое. Красивый и удобный лисповый интерфейс к библиотекам FFmpeg. В процессе, но кое-что работает уже. Пока не хватает swresample и swscale, но скоро будет. Также, потом отдельной asdf-системой будет postroc, т.к. она загплена.

Еще с документацией пока проблемы, как впрочем и у самого ffmpeg.

Тестируется все на винде, под FFmpeg 3.2.4, собранный мной лично:
static.lovesan.ru

Но, в принципе, ничто не мешает работать и с линуксом, надеюсь я там правильные имена файлов so-шек вписал, в src/lib.lisp

В README.md там пример, типа, берем, и конвертируем любое медиа, поддерживаемое FFmpeg, и у которого есть звуковой поток, в mp3-файл.

Случилось чудо. Не прошло и полгода, как мне наконец удалось собрать ffmpeg под win64 со всеми зависимостями, кроме GPL-нутых, проприетарных, и сломанных. Т.е. с LPGL-v3 лицензией.

Собрать в .dll, но притом все зависимости в него вконпилены статически, чтобы сразу было готово к использованию.

Кроме того, билд даже немного круче официального — там в частности поддерживается ускорение с помощью DirectX 11.

Вот полный дистрибутив, лицензии там тоже есть. Ну и README.

static.lovesan.ru

А вот типа пример, как с помощью нехитрых приспособлений(типа, еще с SDL2), libav* можно превратить в аудио/видео плеер:

gist.github.com

Значит такое.
Мне на следующем проекте надо будет работать с мультимедиа и стримингом.
Что я первым делом подумал — а, подумал, наверное, это всё хуйня, все давно решено, особенно в опенсорсе.
Хуй там плавал. И давайте не будем вспоминать грустные вещи про RTSP и про цены на Erlyvideo, давайте начнем с базы.

База это транскодинг и проигрывание. Особенно на винде. Что я сразу подумал? Я подумал, а, говно вопрос — FFmpeg же есть.
Вопрос, действительно оказался говно, и это мягко сказано. Собственно, ключевая мультимедиа-библиотека всего опенсорса — это сраный треш.

Мне стоило две недели, чтобы разобраться и написать нижеследующую простенькую программку, которая умеет играть музыку и показывать видео:
gist.github.com
Код тут говно, и кое-где есть мемори-лик, плюс он почему-то не совсем умеет проигрывать Mp3, но тем не менее.

Что я узнал:
1) Ни один из туториалов в сети не является валидным.
2) Половина API задепрекейчено, и собственно, не особо работает.
3) Breaking changes в нем случаются где-то каждую минорную версию.
4) Вся документация — сигнатуры функций, автоматически сгенеренные из сорцов.
5) На тему работы и интеропа с SDL2 вообще нет ничего.
6) Под винду все еще хуже чем кажется.

Это ёбаный пиздец. И это, повторяюсь, ключевой опенсорсный набор библиотек для мультимедиа! Сраный треш.