» » Сборка расширения ffmpeg-php (php_ffmpeg.dll) для PHP 5 на Windows


Сборка расширения ffmpeg-php (php_ffmpeg.dll) для PHP 5 на Windows
Сервер под Windows
Сборка расширения ffmpeg-php (php_ffmpeg.dll) для PHP 5 на Windows

Рабочее окружение:

* Microsoft Windows XP SP 2
* Microsoft Visual Studio 2005 Express Edition - http://www.microsoft.com/express/2005/download/default.aspx
* Microsoft Platform SDK - http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb

Необходимые файлы:

* Исходные коды PHP 5.2.5 - http://www.php.net/downloads.php
* Дистрибутив PHP 5.2.5 для Windows - http://www.php.net/downloads.php
* Исходные коды ffmpeg-php - http://ffmpeg-php.sourceforge.net/
* Shared библиотеки и заголовочные файлы FFmpeg для Windows (обязательно LGPL) - http://ffmpeg.arrozcru.org/builds/
* Заголовочные файлы inttype.h и stdint.h - http://msinttypes.googlecode.com/svn/trunk/inttypes.h, http://msinttypes.googlecode.com/svn/trunk/stdint.h

Подготовка рабочего окружения.
Создайте рабочую папку, в которой будут размещаться все необходимые файлы, например, C:\Development\PHP\ffmpeg. Распакуйте туда исходные коды PHP, дистрибутив PHP, исходные коды ffmpeg-php, библиотеки и заголовочные файлы FFmpeg. Также положите в эту папку заголовочные файлы inttype.h и stdint.h.

Создайте новый проект в MVS. Тип проекта – Win32, шаблон – Win32 Project. Введите имя проекта, например: php_ffmpeg (по имени будущей dll). Укажите в качестве места расположения созданную ранее папку. В окне Application Wizard перейдите на вкладку Application Settings. Установите Application Type – DLL, Additional Options – Empty Project. Завершите создание проекта, нажатием кнопки Finish.

В окне Solution Explorer добавьте в папку Header Files заголовочные файлы ffmpeg-php: ffmpeg_animated_gif.h
ffmpeg_frame.h
ffmpeg_movie.h
gd.h
gd_io.h
php_ffmpeg.h Там же добавьте в папку Source Files файлы исходных кодов ffmpeg-php: ffmpeg_animated_gif.c
ffmpeg_errorhandler.c
ffmpeg_frame.c
ffmpeg_movie.c
ffmpeg_php.c Приступим к конфигурированию проекта. Откройте меню Project и выберите пункт Properties. Перед вами появится окно настройки проекта. Сразу же откройте вкладку Configuration Properties. Вверху выберите конфигурацию - Release. Перейдите на вкладку C/C++ -> General. В поле Additional Include Directories добавьте следующие пути: C:\Development\PHP\ffmpeg
C:\Development\PHP\ffmpeg\php-5.2.5
C:\Development\PHP\ffmpeg\php-5.2.5\TSRM
C:\Development\PHP\ffmpeg\php-5.2.5\Zend
C:\Development\PHP\ffmpeg\php-5.2.5\main
C:\Development\PHP\ffmpeg\ffmpeg-r10461-include\include\ffmpeg
C:\Program Files\Microsoft Platform SDK\Include Перейдите на вкладку C/C++ -> Preprocessor и в поле Preprocessor Definitions добавьте следующие строки: PHP_WIN32
ZEND_WIN32
ZTS=1
ZEND_DEBUG=0
HAVE_LIBGD20=1
COMPILE_DL_FFMPEG Теперь перейдите на вкладку Linker -> General. В Additional Library Directories добавьте два пути: c:\Development\PHP\ffmpeg\php-5.2.5-Win32\dev
C:\Development\PHP\ffmpeg\ffmpeg-r10461-lgpl-lshared-win32\lib Перейдите на вкладку Linker -> Input и введите в поле Additional Dependencies строки: php5ts.lib
avcodec-51.lib
avformat-51.lib
avutil-49.lib Перейдите на вкладку Linker -> Command Line и в поле Additional options добавьте: /FORCE:MULTIPLE Если вы указали имя проекта отличное от php_ffmpeg, перейдите на вкладку Linker -> General и в поле Output File введите: $(OutDir)\php_ffmpeg.dll Это нужно для того, чтобы не пришлось переименовывать dll после сборки.

Попробуйте собрать расширение, нажав клавишу F7. В консоле появятся сообщения о ошибках.

Устранение ошибок. fatal error C1083: Cannot open include file: 'config.h': No such file or directory Откройте файл ffmpeg-php-0.5.2.1\ffmpeg_frame.c и найдите следующую строку: #include "config.h" Замените её на: #ifdef HAVE_CONFIG_H
#include "config.h"
#endif error C2466: cannot allocate an array of constant size 0 Откройте файл php-5.2.5\main\config.w32.h и закомментируйте строку: //#define _USE_32BIT_TIME_T 1 Сборка расширения.
После этого попробуйте снова собрать расширение. Больше сообщений об ошибках быть не должно. На выходе получится заветный dll php_ffmpeg\release\php_ffmpeg.dll. Скопируйте его в папку с расширениями PHP и добавьте в php.ini строку: extension=php_ffmpeg.dll Также скопируйте файлы из папки ffmpeg-r10461-lgpl-lshared-win32\dll и файл pthreadGC2.dll в папку system32.

Проверить загрузилось расширение или нет можно через консольную версию php.
> php -v
PHP 5.2.5 (cli) (built: Nov 8 2007 23:18:51)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

> php -r "var_dump(extension_loaded('ffmpeg'));"
bool(true)
Процесс сборки расширения можно считать законченным.
 
 
Уважаемый посетитель, на сайте не все можно скачать, мы не распространяем нулленые версии коммерческих скриптов. Скачать можно только то что помеченнно знаком FREE или демо версии.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Для того, чтобы пользоваться всеми функциями сайта, включая поиск!



Похожие новости
    Автор: kuper | Просмотров: 2723 | Коментарии (0) |Распечатать
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 
Design By Kuper