Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
compiled and installed lame-3.97,libogg-1.1.3,libvorbis-1.1.2
compiled mplayer with --prefix=/usr
compiled ffmpeg 0.8.2 with --prefix=/usr --enable-shared
ffmpeg-php
ran phpize
./configure
make
su -c 'make install'
make test fails or skips all tests and restarting apache fails to load the modules
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Original Poster
Rep:
destro is fedora 14
cat error_log | grep ffmpeg gives
Code:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ffmpeg.so' - /usr/lib/php/modules/ffmpeg.so: undefined symbol: register_ffmpeg_movie_class in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ffmpeg.so' - /usr/lib/php/modules/ffmpeg.so: undefined symbol: register_ffmpeg_movie_class in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ffmpeg.so' - /usr/lib/php/modules/ffmpeg.so: undefined symbol: register_ffmpeg_movie_class in Unknown on line 0
How comes, that the ffmpeg-php extension is installed in /usr/lib/php/modules/ffmpeg.so?
According to your php configure options, php is installed under /usr/local (the default location if you haven't used a --prefix=...), so the extension should be installed under /usr/local/lib/php/extensions/...
Also why don't you try to install ffmpeg-php from svn (version 0.6.3) and see if it helps
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Original Poster
Rep:
tried installing from svn
the results of nm /usr/lib/php/modules/ffmpeg.so
Code:
00002840 t .L103
00002900 t .L126
00002ba0 t .L127
00002ad8 t .L128
00002c88 t .L129
00002a10 t .L130
000027ea t .L97
00004018 a _DYNAMIC
00004120 a _GLOBAL_OFFSET_TABLE_
w _Jv_RegisterClasses
00004004 d __CTOR_END__
00004000 d __CTOR_LIST__
0000400c d __DTOR_END__
00004008 d __DTOR_LIST__
00003bc4 r __FRAME_END__
00004010 d __JCR_END__
00004010 d __JCR_LIST__
000043c0 A __bss_start
w __cxa_finalize@@GLIBC_2.1.3
000036f0 t __do_global_ctors_aux
000014e0 t __do_global_dtors_aux
00004014 d __dso_handle
w __gmon_start__
000015a9 t __i686.get_pc_thunk.bx
00001856 t __i686.get_pc_thunk.cx
000043c0 A _edata
U _efree
U _emalloc
00004568 A _end
00003728 T _fini
00001148 T _init
U _object_init_ex
00001bf0 t _php_alloc_ff_frame
00001ef0 T _php_convert_frame
00001cf0 T _php_create_ffmpeg_frame
00001c60 t _php_free_av_frame
00001cb0 t _php_free_ffmpeg_frame
000025e0 T _php_resample_frame
U _safe_emalloc
U _zend_get_parameters_array_ex
U _zend_list_addref
U _zval_copy_ctor_func
U _zval_ptr_dtor
U add_property_resource_ex
U av_free
U av_log_set_callback
U av_malloc
U av_register_all@@LIBAVFORMAT_53
U avcodec_alloc_frame@@LIBAVCODEC_53
U avcodec_init@@LIBAVCODEC_53
U avcodec_version@@LIBAVCODEC_53
U avpicture_alloc@@LIBAVCODEC_53
U call_user_function_ex
000043c0 b completed.5530
U convert_to_long
U display_ini_entries
000043c4 b dtor_idx.5532
U executor_globals
00003330 T ffmpeg_errorhandler
00004400 B ffmpeg_frame_class_entry
000043c8 b ffmpeg_frame_class_entry_ptr
00004320 D ffmpeg_frame_class_methods
00003380 T ffmpeg_hide_errors
00004200 D ffmpeg_module_entry
00001570 t frame_dummy
00001840 T get_module
00003390 T img_convert
00003450 T img_resample
000036b0 T img_resample_close
00003530 T img_resample_full_init
00003630 T img_resample_init
00004260 d ini_entries
000043e0 B le_ffmpeg_frame
000043cc b le_gd
U malloc@@GLIBC_2.0
U php_error_docref0
U php_gd_gdImageSetPixel
U php_info_print_table_end
U php_info_print_table_row
U php_info_print_table_start
U php_verror
00001d80 T register_ffmpeg_frame_class
U register_ffmpeg_movie_class
U sws_freeContext@@LIBSWSCALE_2
U sws_getContext@@LIBSWSCALE_2
U sws_scale@@LIBSWSCALE_2
U zend_error
U zend_fetch_list_dtor_id
U zend_fetch_resource
U zend_hash_find
U zend_ini_long
U zend_register_ini_entries
U zend_register_internal_class
U zend_register_list_destructors_ex
U zend_register_long_constant
U zend_register_resource
U zend_register_string_constant
U zend_unregister_ini_entries
U zend_wrong_param_count
00002e40 T zif_crop
00002360 T zim_ffmpeg_frame_ffmpeg_frame
00001860 T zim_ffmpeg_frame_getHeight
00001b00 T zim_ffmpeg_frame_getPresentationTimestamp
00001940 T zim_ffmpeg_frame_getWidth
00001a20 T zim_ffmpeg_frame_isKeyFrame
00002730 T zim_ffmpeg_frame_resize
00001fd0 T zim_ffmpeg_frame_toGDImage
000015b0 T zm_info_ffmpeg
000016a0 T zm_shutdown_ffmpeg
000016d0 T zm_startup_ffmpeg
the server originally had a version of php installed from the repositories
now i have a compiled version of php since i had to downgrade frpm php 5.3 to php 5.2, the path probably stuck from the original php.ini
the server originally had a version of php installed from the repositories
now i have a compiled version of php since i had to downgrade frpm php 5.3 to php 5.2, the path probably stuck from the original php.ini
I think that you're still using the old php (installed in /usr) when you're compiling ffmpeg-php, and the old php.ini when you're running php through apache.
Your self-compiled php should be located in /usr/local, the php.ini in /usr/local/lib/php.ini and the extension in /usr/local/lib/php/extensions/...
The phpinfo shows that apache uses the php 5.2.17 module that was compiled against it
As you see the php.ini is located in /usr/local/lib, so php is installed in /usr/local (as I've already told you). So the ffmpeg extension should be installed also there and not in /usr/lib
You can try to clean the sources directory and redo the procedure again using the full path to phpize
Code:
make distclean
/usr/local/bin/phpize clean
/usr/local/bin/phpize
./configure
make
sudo make install
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.