Recherche avancée

Médias (1)

Mot : - Tags -/biomaping

Autres articles (56)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

Sur d’autres sites (5093)

  • Unable to load FFProbe in laravel app

    1er août 2016, par Bullgod

    i have a problem when i upload a video with a form in my server. In the moment of upload, the aplication, must to convert the format of the video to mp4. In my notebook, this convertion work fine but when i try to convert a video in the server, i receive this error :

    ExecutableNotFoundException in FFProbeDriver.php line 50 : Unable to load FFProbe

    This is my form :

    {!! Form::open(['route' =>'upload.store', 'method'=>'POST', 'files'=> true ]) !!}

    <div class="form-group" style="display: none;">
       {!! Form::label('usuario_id', 'usuario_id:') !!}
       {!! Form::text('usuario_id', Auth::user()->id) !!}
    </div>
    <div class="form-group" style="display: none;">
       {!! Form::label('state', 'State:') !!}
       {!! Form::text('state', 0) !!}
    </div>
    <div class="form-group">
       {!! Form::label('asignatura_id', 'Asignatura:') !!}
       {!! Form::select('asignatura_id', $subject) !!}
    </div>
    <div class="form-group">
       {!! Form::label('name', 'Nombre:') !!}
       {!! Form::text('name', null, ['class'=> 'form-control', 'placeholder' => 'Ingresa el nombre de la pelicula']) !!}
    </div>
    <div class="form-group">
       {!! Form::label('language', 'Idioma:') !!}
       {!! Form::text('language', null, ['class'=> 'form-control', 'placeholder' => 'Ingresa la descripcion']) !!}
    </div><div class="form-group">
       {!! Form::label('creation_date', 'Fecha Creación:') !!}
       {!! Form::text('creation_date', null, ['class'=> 'form-control', 'placeholder' => 'Ingresa el nombre de la pelicula']) !!}
    </div>
    <div class="form-group">
       {!! Form::label('description', 'Descripcion:') !!}
       {!! Form::text('description', null, ['class'=> 'form-control', 'placeholder' => 'Ingresa la descripcion']) !!}
    </div>
    <div class="form-group">
       {!! Form::label('imageRef', 'Imagen:') !!}
       {!! Form::file('imageRef') !!}
    </div>

    <div class="form-group">
       {!! Form::label('url', 'Video:') !!}
       {!! Form::file('url') !!}
    </div>
       {!! Form::submit('Registrar',['class' =>'btn btn-primary']) !!}
       {!! Form::close() !!}

    The function in the model :

    public function setUrlAttribute($url){

           $this->attributes['url'] = 'old/'.Carbon::now()->second.$url->getClientOriginalName();
           $name = Carbon::now()->second.$url->getClientOriginalName();
           \Storage::disk('local')->put($name, \File::get($url));

           $file = pathinfo($name,PATHINFO_FILENAME);
           $extension = pathinfo($name,PATHINFO_EXTENSION);

           $ffmpeg = \FFMpeg\FFMpeg::create([
               'ffmpeg.binaries'  => '/usr/bin/ffmpeg.exe',
               'ffprobe.binaries' => '/usr/bin/ffprobe.exe',
               'timeout'          => 0, // The timeout for the underlying process
               'ffmpeg.threads'   => 12,   // The number of threads that FFMpeg should use

           ]);
           $video = $ffmpeg->open($url);
           $format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264');
           $format->on('progress', function ($video, $format, $percentage) {
               echo "$percentage % transcoded";
           });
           $format
           -> setKiloBitrate(1000)
           -> setAudioChannels(2)
           -> setAudioKiloBitrate(256);

           $video
           ->save($format, 'files/convert/'.$file.'.mp4');
           $this->attributes['url'] = $file.'.mp4';
       }

    if i convert the video in the console i receive this :

    # ffmpeg -i 67portrait.MOV -vcodec libx264 new.mp4
    FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
     built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
     configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
     libavutil     50.15. 1 / 50.15. 1
     libavcodec    52.72. 2 / 52.72. 2
     libavformat   52.64. 2 / 52.64. 2
     libavdevice   52. 2. 0 / 52. 2. 0
     libavfilter    1.19. 0 /  1.19. 0
     libswscale     0.11. 0 /  0.11. 0
     libpostproc   51. 2. 0 / 51. 2. 0

    Seems stream 1 codec frame rate differs from container frame rate: 1200.00 (1200/1) -> 29.97 (30000/1001)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '67portrait.MOV':
     Metadata:
       major_brand     : qt  
       minor_version   : 0
       compatible_brands: qt  
       date            : 2013-11-29T13:19:09+0100
       date-fra        : 2013-11-29T13:19:09+0100
     Duration: 00:00:02.08, start: 0.000000, bitrate: 926 kb/s
       Stream #0.0(und): Audio: aac, 44100 Hz, mono, s16, 60 kb/s
       Stream #0.1(und): Video: h264, yuv420p, 568x320, 863 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc
    [libx264 @ 0x24bab70]broken ffmpeg default settings detected
    [libx264 @ 0x24bab70]use an encoding preset (e.g. -vpre medium)
    [libx264 @ 0x24bab70]preset usage: -vpre <speed> -vpre <profile>
    [libx264 @ 0x24bab70]speed presets are listed in x264 --help
    [libx264 @ 0x24bab70]profile is optional; x264 defaults to high
    Output #0, mp4, to 'new.mp4':
       Stream #0.0(und): Video: libx264, yuv420p, 568x320, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
       Stream #0.1(und): Audio: libfaac, 44100 Hz, mono, s16, 64 kb/s
    Stream mapping:
     Stream #0.1 -> #0.0
     Stream #0.0 -> #0.1
    Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
    </profile></speed>

    i have tried a lot of thinks to resolve this problem but steel happend.

  • comple librtmp for android error : cannot find -ldl collect2 : error : ld returned 1 exit status

    26 mars 2014, par hosein

    I have problem on comple librtmp for android using :
    https://github.com/OnlyInAmerica/FFmpeg-Android

    ./build_librtmp_for_android.sh

    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_so.o: No such file or directory
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_so.o: No such file or directory
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lssl
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lcrypto
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lz
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lc
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl
    collect2: error: ld returned 1 exit status
    make: *** [librtmp.so.1] Error 1

    here is build_librtmp_for_android.sh :

    #!/bin/bash
    NDK=/home/user/loc_app/android-ndk-r9
    #/home/user/loc_app/android-ndk-r9/platforms/android-19/arch-arm
    SYSROOT=$NDK/platforms/android-18/arch-arm
    #platforms/android-19/arch-arm/
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
    #/home/user/loc_app/android-ndk-r9/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
    OPENSSL_DIR=/home/user/libs/openssl-android-master/
    # Note: Change the above variables for your system.
    function build_one
    {
       set -e
       make clean
       ln -s ${SYSROOT}usr/lib/crtbegin_so.o
       ln -s ${SYSROOT}usr/lib/crtend_so.o
       export XLDFLAGS="$ADDI_LDFLAGS -L${OPENSSL_DIR}libs/armeabi -L${SYSROOT}usr/lib "
       export CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
       export XCFLAGS="${ADDI_CFLAGS} -I${OPENSSL_DIR}include -isysroot ${SYSROOT}"
       export INC="-I${SYSROOT}"
       make prefix=\"${PREFIX}\" OPT= install
    }
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one

    OS : Fedora 64bit

    EDIT 1 : that seems to Makefile so i added it here

    VERSION=v2.4

    prefix=/usr/local

    incdir=$(prefix)/include/librtmp
    bindir=$(prefix)/bin
    libdir=$(prefix)/lib
    mandir=$(prefix)/man
    BINDIR=$(DESTDIR)$(bindir)
    INCDIR=$(DESTDIR)$(incdir)
    LIBDIR=$(DESTDIR)$(libdir)
    MANDIR=$(DESTDIR)$(mandir)

    CC=$(CROSS_COMPILE)gcc
    LD=$(CROSS_COMPILE)ld
    AR=$(CROSS_COMPILE)ar

    SYS=posix
    CRYPTO=OPENSSL
    #CRYPTO=GNUTLS
    DEF_POLARSSL=-DUSE_POLARSSL
    DEF_OPENSSL=-DUSE_OPENSSL
    DEF_GNUTLS=-DUSE_GNUTLS
    DEF_=-DNO_CRYPTO
    REQ_GNUTLS=gnutls,hogweed,nettle
    REQ_OPENSSL=libssl,libcrypto
    PUB_GNUTLS=-lgmp
    LIBZ=-lz
    LIBS_posix=
    LIBS_darwin=
    LIBS_mingw=-lws2_32 -lwinmm -lgdi32
    LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ)
    LIB_OPENSSL=-lssl -lcrypto $(LIBZ)
    LIB_POLARSSL=-lpolarssl $(LIBZ)
    PRIVATE_LIBS=$(LIBS_$(SYS))
    CRYPTO_LIB=$(LIB_$(CRYPTO)) $(PRIVATE_LIBS)
    CRYPTO_REQ=$(REQ_$(CRYPTO))
    CRYPTO_DEF=$(DEF_$(CRYPTO))
    PUBLIC_LIBS=$(PUB_$(CRYPTO))

    SO_VERSION=1
    SOX_posix=so
    SOX_darwin=dylib
    SOX_mingw=dll
    SOX=$(SOX_$(SYS))
    SO_posix=.$(SOX).$(SO_VERSION)
    SO_darwin=.$(SO_VERSION).$(SOX)
    SO_mingw=-$(SO_VERSION).$(SOX)
    SO_EXT=$(SO_$(SYS))

    SODIR_posix=$(LIBDIR)
    SODIR_darwin=$(LIBDIR)
    SODIR_mingw=$(BINDIR)
    SODIR=$(SODIR_$(SYS))

    SO_LDFLAGS_posix=-shared -Wl,-soname,$@
    SO_LDFLAGS_darwin=-dynamiclib -twolevel_namespace -undefined dynamic_lookup \
       -fno-common -headerpad_max_install_names -install_name $(libdir)/$@
    SO_LDFLAGS_mingw=-shared -Wl,--out-implib,librtmp.dll.a
    SO_LDFLAGS=$(SO_LDFLAGS_$(SYS))

    INSTALL_IMPLIB_posix=
    INSTALL_IMPLIB_darwin=
    INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR)
    INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS))

    SHARED=yes
    SODEF_yes=-fPIC
    SOLIB_yes=librtmp$(SO_EXT)
    SOINST_yes=install_so
    SO_DEF=$(SODEF_$(SHARED))
    SO_LIB=$(SOLIB_$(SHARED))
    SO_INST=$(SOINST_$(SHARED))

    DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
    OPT=-O2
    CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF)
    LDFLAGS=$(XLDFLAGS)


    OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o

    all:    librtmp.a $(SO_LIB)

    clean:
       rm -f *.o *.a *.$(SOX) *$(SO_EXT) librtmp.pc

    librtmp.a: $(OBJS)
       $(AR) rs $@ $?

    librtmp$(SO_EXT): $(OBJS)
       $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB)
       ln -sf $@ librtmp.$(SOX)

    log.o: log.c log.h Makefile
    rtmp.o: rtmp.c rtmp.h rtmp_sys.h handshake.h dh.h log.h amf.h Makefile
    amf.o: amf.c amf.h bytes.h log.h Makefile
    hashswf.o: hashswf.c http.h rtmp.h rtmp_sys.h Makefile
    parseurl.o: parseurl.c rtmp.h rtmp_sys.h log.h Makefile

    librtmp.pc: librtmp.pc.in Makefile
       sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \
           -e "s;@VERSION@;$(VERSION);" \
           -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \
           -e "s;@PUBLIC_LIBS@;$(PUBLIC_LIBS);" \
           -e "s;@PRIVATE_LIBS@;$(PRIVATE_LIBS);" librtmp.pc.in > $@

    install:    install_base $(SO_INST)

    install_base:   librtmp.a librtmp.pc
       -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR)
       cp amf.h http.h log.h rtmp.h $(INCDIR)
       cp librtmp.a $(LIBDIR)
       cp librtmp.pc $(LIBDIR)/pkgconfig
       cp librtmp.3 $(MANDIR)/man3

    install_so: librtmp$(SO_EXT)
       cp librtmp$(SO_EXT) $(SODIR)
       $(INSTALL_IMPLIB)
       cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX)
  • compile librtmp for android error : cannot find -ldl collect2 : error : ld returned 1 exit status

    6 mai 2014, par hosein

    I have problem on comple librtmp for android using :
    https://github.com/OnlyInAmerica/FFmpeg-Android

    ./build_librtmp_for_android.sh

    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_so.o: No such file or directory
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_so.o: No such file or directory
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lssl
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lcrypto
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lz
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lc
    /home/user/loc_app/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl
    collect2: error: ld returned 1 exit status
    make: *** [librtmp.so.1] Error 1

    here is build_librtmp_for_android.sh :

    #!/bin/bash
    NDK=/home/user/loc_app/android-ndk-r9
    #/home/user/loc_app/android-ndk-r9/platforms/android-19/arch-arm
    SYSROOT=$NDK/platforms/android-18/arch-arm
    #platforms/android-19/arch-arm/
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
    #/home/user/loc_app/android-ndk-r9/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
    OPENSSL_DIR=/home/user/libs/openssl-android-master/
    # Note: Change the above variables for your system.
    function build_one
    {
       set -e
       make clean
       ln -s ${SYSROOT}usr/lib/crtbegin_so.o
       ln -s ${SYSROOT}usr/lib/crtend_so.o
       export XLDFLAGS="$ADDI_LDFLAGS -L${OPENSSL_DIR}libs/armeabi -L${SYSROOT}usr/lib "
       export CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
       export XCFLAGS="${ADDI_CFLAGS} -I${OPENSSL_DIR}include -isysroot ${SYSROOT}"
       export INC="-I${SYSROOT}"
       make prefix=\"${PREFIX}\" OPT= install
    }
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one

    OS : Fedora 64bit

    EDIT 1 : that seems to Makefile so i added it here

    VERSION=v2.4

    prefix=/usr/local

    incdir=$(prefix)/include/librtmp
    bindir=$(prefix)/bin
    libdir=$(prefix)/lib
    mandir=$(prefix)/man
    BINDIR=$(DESTDIR)$(bindir)
    INCDIR=$(DESTDIR)$(incdir)
    LIBDIR=$(DESTDIR)$(libdir)
    MANDIR=$(DESTDIR)$(mandir)

    CC=$(CROSS_COMPILE)gcc
    LD=$(CROSS_COMPILE)ld
    AR=$(CROSS_COMPILE)ar

    SYS=posix
    CRYPTO=OPENSSL
    #CRYPTO=GNUTLS
    DEF_POLARSSL=-DUSE_POLARSSL
    DEF_OPENSSL=-DUSE_OPENSSL
    DEF_GNUTLS=-DUSE_GNUTLS
    DEF_=-DNO_CRYPTO
    REQ_GNUTLS=gnutls,hogweed,nettle
    REQ_OPENSSL=libssl,libcrypto
    PUB_GNUTLS=-lgmp
    LIBZ=-lz
    LIBS_posix=
    LIBS_darwin=
    LIBS_mingw=-lws2_32 -lwinmm -lgdi32
    LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ)
    LIB_OPENSSL=-lssl -lcrypto $(LIBZ)
    LIB_POLARSSL=-lpolarssl $(LIBZ)
    PRIVATE_LIBS=$(LIBS_$(SYS))
    CRYPTO_LIB=$(LIB_$(CRYPTO)) $(PRIVATE_LIBS)
    CRYPTO_REQ=$(REQ_$(CRYPTO))
    CRYPTO_DEF=$(DEF_$(CRYPTO))
    PUBLIC_LIBS=$(PUB_$(CRYPTO))

    SO_VERSION=1
    SOX_posix=so
    SOX_darwin=dylib
    SOX_mingw=dll
    SOX=$(SOX_$(SYS))
    SO_posix=.$(SOX).$(SO_VERSION)
    SO_darwin=.$(SO_VERSION).$(SOX)
    SO_mingw=-$(SO_VERSION).$(SOX)
    SO_EXT=$(SO_$(SYS))

    SODIR_posix=$(LIBDIR)
    SODIR_darwin=$(LIBDIR)
    SODIR_mingw=$(BINDIR)
    SODIR=$(SODIR_$(SYS))

    SO_LDFLAGS_posix=-shared -Wl,-soname,$@
    SO_LDFLAGS_darwin=-dynamiclib -twolevel_namespace -undefined dynamic_lookup \
       -fno-common -headerpad_max_install_names -install_name $(libdir)/$@
    SO_LDFLAGS_mingw=-shared -Wl,--out-implib,librtmp.dll.a
    SO_LDFLAGS=$(SO_LDFLAGS_$(SYS))

    INSTALL_IMPLIB_posix=
    INSTALL_IMPLIB_darwin=
    INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR)
    INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS))

    SHARED=yes
    SODEF_yes=-fPIC
    SOLIB_yes=librtmp$(SO_EXT)
    SOINST_yes=install_so
    SO_DEF=$(SODEF_$(SHARED))
    SO_LIB=$(SOLIB_$(SHARED))
    SO_INST=$(SOINST_$(SHARED))

    DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
    OPT=-O2
    CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF)
    LDFLAGS=$(XLDFLAGS)


    OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o

    all:    librtmp.a $(SO_LIB)

    clean:
       rm -f *.o *.a *.$(SOX) *$(SO_EXT) librtmp.pc

    librtmp.a: $(OBJS)
       $(AR) rs $@ $?

    librtmp$(SO_EXT): $(OBJS)
       $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB)
       ln -sf $@ librtmp.$(SOX)

    log.o: log.c log.h Makefile
    rtmp.o: rtmp.c rtmp.h rtmp_sys.h handshake.h dh.h log.h amf.h Makefile
    amf.o: amf.c amf.h bytes.h log.h Makefile
    hashswf.o: hashswf.c http.h rtmp.h rtmp_sys.h Makefile
    parseurl.o: parseurl.c rtmp.h rtmp_sys.h log.h Makefile

    librtmp.pc: librtmp.pc.in Makefile
       sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \
           -e "s;@VERSION@;$(VERSION);" \
           -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \
           -e "s;@PUBLIC_LIBS@;$(PUBLIC_LIBS);" \
           -e "s;@PRIVATE_LIBS@;$(PRIVATE_LIBS);" librtmp.pc.in > $@

    install:    install_base $(SO_INST)

    install_base:   librtmp.a librtmp.pc
       -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR)
       cp amf.h http.h log.h rtmp.h $(INCDIR)
       cp librtmp.a $(LIBDIR)
       cp librtmp.pc $(LIBDIR)/pkgconfig
       cp librtmp.3 $(MANDIR)/man3

    install_so: librtmp$(SO_EXT)
       cp librtmp$(SO_EXT) $(SODIR)
       $(INSTALL_IMPLIB)
       cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX)