Рейтинг
0.00
голосов:
0
avatar

FFmpeg  

Чтение и запись видеофреймов с помощью Dll FFmpeg

Пользуясь описанием http://recog.ru/blog/ffmpeg/67.html и http://recog.ru/blog/ffmpeg/66.html можно создать библиотеку Dll с нужными функциями. Для начала мы попробуем как записывать и читать видеофреймы, а для этого используем наработки из OpenCV. Для этого при компиляции нам необходимо будет включить код из файлов OpenCV:
cap_ffmpeg_impl.hpp
cap_ffmpeg_api.hpp
ffmpeg_codecs.hpp
А откомпилировать можно примерно так:
set path=C:\MinGW\bin;%path% & gcc -Wall -shared -o ffmpeg.dll -O2 -x c++ -I../include out_dll.c -L../lib -lavformat -lavcodec -lavdevice -lswscale -lavutil -lwsock32


( Читать дальше )

FFmpeg для Windows – создание своей Dll

Для того, чтобы использовать FFmpeg для Windows необходимо создать Dll, которая будет экспортировать ваши функции. Чтобы не усложнять задачу, я взял пример decoding_encoding.c, поставляемый вместе с библиотекой, выбрал оттуда функцию декодирования видео и создал собственную Dll.
Первое, что нужно сделать, это создать файл, который будет содержать экспортируемую функцию (-и). В нашем примере out_dll.c. И его содержимое представлено ниже.


( Читать дальше )

FFmpeg для Windows – лицензия и компиляция

Использование OpenCV предусматривает работу с видео файлами. Однако, что делать, если необходимо работать еще и со звуковой дорожкой в этом файле? В этом случае такое решение не подойдет. Есть вариант использовать FFmpeg для Windows. Но в этом случае для возможности использования LGPL лицензии необходимо соблюсти следующие правила (некоторые рекомендации – например, пункт 4):
1. Компилировать FFmpeg без "--enable-gpl" и без "--enable-nonfree".
2. Использование динамического связывания (в Windows это означает использование DLL) для связи с FFmpeg библиотеками.
3. Распространение исходного кода FFmpeg, независимо от того изменили вы его или нет.
4. Убедитесь в том, что исходный код в точности соответствует бинарным файлам, которые вы используете.
5. Выполните команду «Git diff> changes.diff» в корневом каталоге исходного кода FFmpeg, чтобы создать файл только с изменениями.
6. Объясните, как вы собрали FFmpeg, например, строка конфигурации в текстовом файле, добавляется в корневом каталоге исходного кода.
7. Использование tarball или zip файла для распространения исходного кода.
8. Разместите исходный код FFmpeg на одном веб-сервере, что двоичный код.
9. Добавьте «This software uses code of FFmpeg licensed under the LGPLv2.1 and its source can be downloaded here» на все страницы, где есть ссылка на ваше приложение.
10. Упоминание «This software uses libraries from the FFmpeg project under the LGPLv2.1» в окне «О программе» вашей программы.
11. Упоминание в лицензионном соглашении, что ваша программа использует FFmpeg под LGPLv2.1.
12. Если лицензионное соглашение утверждает право собственности на код, вы должны явно сказать, что вы не владеете FFmpeg, и где соответствующие владельцы могут быть найдены.
13. Удалите любые запрещения обратного инжиниринга с вашего лицензионного соглашения.
14. Примените те же изменения во всех переводах вашего лицензионного соглашения.
15. Не допускать ошибки в названии FFmpeg (двух прописные F и строчные «mpeg»).
16. Не переименовывайте FFmpeg библиотеки dll.
17. Go through all the items again for any LGPL external library you compiled into FFmpeg (for example LAME).
18. Убедитесь, что ваша программа не использует GPL библиотеки.


( Читать дальше )