1
votes

I have a NGINX server with PHP-7.0 and I would like to install the ffmpeg-php extension. I've been trying for a few days now and in many ways.

The method that worked so far was compiling ffmpeg (https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2) manually, but when trying to compile ffmpeg-php (https: // sourceforge. net / projects / ffmpeg-php / files / ffmpeg-php / 0.6.0 / ffmpeg-php-0.6.0.tbz2 / download) I am encountering the following error message:

root@zumbiserver-mercury:~/php7-ffmpeg# make /bin/bash

/root/php7-ffmpeg/libtool --mode=compile cc -I. -I/root/php7-ffmpeg -DPHP_ATOM_INC -I/root/php7-ffmpeg/include -I/root/php7-ffmpeg/main -I/root/php7-ffmpeg -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /root/php7-ffmpeg/ffmpeg-php.c -o ffmpeg-php.lo libtool: compile: cc -I. -I/root/php7-ffmpeg -DPHP_ATOM_INC -I/root/php7-ffmpeg/include -I/root/php7-ffmpeg/main -I/root/php7-ffmpeg -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /root/php7-ffmpeg/ffmpeg-php.c -fPIC -DPIC -o .libs/ffmpeg-php.o In file included from /usr/include/x86_64-linux-gnu/sys/stat.h:104:0, from /usr/include/php/20151012/Zend/zend_stream.h:28, from /usr/include/php/20151012/Zend/zend.h:41, from /usr/include/php/20151012/main/php.h:36, from /root/php7-ffmpeg/ffmpeg-php.c:40: /usr/include/x86_64-linux-gnu/bits/stat.h:91:21: error: field ‘st_atim’ has incomplete type struct timespec st_atim; /* Time of last access. / ^ /usr/include/x86_64-linux-gnu/bits/stat.h:92:21: error: field ‘st_mtim’ has incomplete type struct timespec st_mtim; / Time of last modification. / ^ /usr/include/x86_64-linux-gnu/bits/stat.h:93:21: error: field ‘st_ctim’ has incomplete type struct timespec st_ctim; / Time of last status change. / ^ /usr/include/x86_64-linux-gnu/bits/stat.h:152:21: error: field ‘st_atim’ has incomplete type struct timespec st_atim; / Time of last access. / ^ /usr/include/x86_64-linux-gnu/bits/stat.h:153:21: error: field ‘st_mtim’ has incomplete type struct timespec st_mtim; / Time of last modification. / ^ /usr/include/x86_64-linux-gnu/bits/stat.h:154:21: error: field ‘st_ctim’ has incomplete type struct timespec st_ctim; / Time of last status change. / ^ In file included from /usr/include/php/20151012/Zend/zend_stream.h:28:0, from /usr/include/php/20151012/Zend/zend.h:41, from /usr/include/php/20151012/main/php.h:36, from /root/php7-ffmpeg/ffmpeg-php.c:40: /usr/include/x86_64-linux-gnu/sys/stat.h:364:31: error: array type has incomplete element type ‘struct timespec’ const struct timespec __times[2], ^ /usr/include/x86_64-linux-gnu/sys/stat.h:371:54: error: array type has incomplete element type ‘struct timespec’ extern int futimens (int __fd, const struct timespec __times[2]) __THROW; ^ In file included from /usr/include/php/20151012/main/php.h:395:0, from /root/php7-ffmpeg/ffmpeg-php.c:40: /usr/include/php/20151012/Zend/zend_virtual_cwd.h:218:2: error: unknown type name ‘time_t’ time_t expires;
^ /usr/include/php/20151012/Zend/zend_virtual_cwd.h:248:86: error: unknown type name ‘time_t’ CWD_API realpath_cache_bucket
realpath_cache_lookup(const char *path, int path_len, time_t t); ^ /root/php7-ffmpeg/ffmpeg-php.c: In function ‘zm_startup_ffmpeg’: /root/php7-ffmpeg/ffmpeg-php.c:108:5: warning: implicit declaration of function ‘avcodec_init’ [-Wimplicit-function-declaration] avcodec_init(); ^ /root/php7-ffmpeg/ffmpeg-php.c:111:5: warning: ‘av_register_all’ is deprecated [-Wdeprecated-declarations] av_register_all(); ^ In file included from /root/php7-ffmpeg/ffmpeg-php.c:43:0: /usr/local/include/libavformat/avformat.h:2025:6: note: declared here void av_register_all(void);

  ^ Makefile:194: recipe for target 'ffmpeg-php.lo' failed make: *** [ffmpeg-php.lo] Error 1

Can someone give me a light? I do not know what else to do!

1
Why would you use an obsolete PHP version like 7.0? I'd expect at least 7.1 if not 7.2.Ulrich Eckhardt

1 Answers

1
votes

That ffmpeg-php is a long dead project that hasn't been updated for 10 years. Don't waste your time. If you must use a wrapper see FFmpegPHP or PHP-FFMpeg which appear to be actively maintained as of now.

Do you even need a wrapper? Perhaps you can just directly use the ffmpeg tool in your scripts. See FFmpeg Wiki: PHP.