Recherche avancée

Médias (2)

Mot : - Tags -/kml

Autres articles (68)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

Sur d’autres sites (7777)

  • shared library built with g++ compile is works and with automake compile can not be used

    23 avril 2013, par user2310175

    I'm building a shared libraries on CentOS 6.2.
    The shared library will be build have some cpp files,headers,c shared libraries
    and ffmpeg.The shared library is used to convert videos. When i use the g++ compile like this :

    g++    DataType.h    h264function.h  h264function.cpp videoconvert.h videoconvert.cpp      stdafx.h stdafx.cpp YV12toRGB.h YV12toRGB.cpp -lMPCtrl -lavcodec -lavformat -lavutil -   lhcnetsdk -lPlayCtrl -lpthread -fPIC -shared -o libtest.so

    It can work properly,and the video can be converted as standard h264 coded.That seems the files used for building the library is

    good.But when i use the autotools to make the library,it can not work correct.Here is my configure.in and Makefile.am :

    Makefile.am :

    prefix=/usr
    lib_LTLIBRARIES=libhikvisiontranso.la

    libhikvisiontranso_la_SOURCES=stdafx.h stdafx.cpp videoconvert.h videoconvert.cpp
    h264function.h h264function.cpp YV12toRGB.h YV12toRGB.cpp DataType.h

    libhikvisiontranso_la_LDFLAGS=-avoid-version -shared
    libhikvisiontranso_la_LIBADD=-lpthread -lMPCtrl -lhcnetsdk -lPlayCtrl -lavformat -    lavcodec -lavutil
    ACLOCAL_AMFLAGS= -I m4

    configure.in :

    #                                               -*- Autoconf -*-
    # Process this file with autoconf to produce a configure script.

    AC_PREREQ([2.63])
    AC_INIT([hikvisiontranso],[1.0], [songxiawuren@gmail.com])
    AM_INIT_AUTOMAKE([libhikvisiontranso.so],[1.0])
    AC_CONFIG_SRCDIR([DataType.h])
    AC_CONFIG_HEADERS([config.h])
    AC_CONFIG_MACRO_DIR([m4])
    AT_INIT
    # Checks for programs.
    AC_PROG_CXX
    AC_PROG_CC

    # Checks for libraries.

    # Checks for header files.
    AC_CHECK_HEADERS([inttypes.h limits.h stddef.h stdint.h stdlib.h string.h])

    # Checks for typedefs, structures, and compiler characteristics.
    AC_HEADER_STDBOOL
    AC_C_INLINE
    AC_TYPE_INT16_T
    AC_TYPE_INT32_T
    AC_TYPE_INT64_T
    AC_TYPE_INT8_T
    AC_TYPE_SIZE_T
    AC_TYPE_UINT16_T
    AC_TYPE_UINT32_T
    AC_TYPE_UINT64_T
    AC_TYPE_UINT8_T

    # Checks for library functions.
    AC_FUNC_MALLOC
    AC_PROG_LIBTOOL
    AC_CONFIG_FILES([Makefile])
    AC_OUTPUT

    The wrong output is :

    SDL Init

    init console=1

    Output #0, avi, to '/home/ningge/Desktop/HaikangDvr.avi':

    Stream #0.0: Invalid Codec type -1

    Height = 576; Width = 704;totalfram=90000

    Segmentation fault (core dumped)

    The right is :

    SDL Init

    init console=1

    Output #0, avi, to '/home/ningge/Desktop/HaikangDvr.avi':

    Stream #0.0: Video: mpeg4, yuv420p, 704x576, q=2-31, 200 kb/s, 90k tbn, 25 tbc

    Height = 576; Width = 704;totalfram=90000

    CSDLInit goOut

    I hope someone can help me to find what's wrong with automake.

  • ffmpeg in child process doesn't exit when parent closes pipe

    28 mars 2013, par user2221129

    This code snippet is from a pthread process. It is responsible for reading configuration/options to pass to ffmpeg. The data piped to ffmpeg is coming in on a ring buffer of video frames (as a proof of concept, in the final implementation these would be coming from a camera device). The parent writes to the child via a pipe established with dup2. The problem I'm having is that most of the time, the ffmpeg process doesn't seem to recognize the pipe has been closed by the parent (as strace shows the ffmpeg is in read). There are probably some unhandled mutex situations.

    #define CHILD_READ  writepipe[0]
    #define PARENT_WRITE    writepipe[1]
    #define MAX_VIDEO_BUFFERS 30

    static int last_frame_written = -1;
    static int buffer_size = -1;
    static void *video_buffer[MAX_VIDEO_BUFFERS];

    #define MAXTHREADS 2
    static pthread_t thread[MAXTHREADS];
    static int sigusr[MAXTHREADS];
    static int sigusr_thread[MAXTHREADS];

    #define MAXPARAMETERS 100

    void* encoder_thread(void *ptr)
    {
       int param;
       const char **parameters = new const char* [MAXPARAMETERS];
       ssize_t bytes_written_debug = 0;

       int writepipe[2] = {-1,-1};
       int last_frame_read = -1;
       pid_t   childpid;

       // xxx
       if ( 0 != pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) )
       {
           fprintf(stderr,"pthread_setcancelstate could not be set\n");
       }

       param = *(int*)ptr;
       fprintf(stderr,"param = %d\n", param);

       switch (param)
       {
           ...read config file and populate parameters for child call...
       }

       while ( last_frame_written == -1 )
       {
           fprintf(stderr,"ENCODER THREAD WAITING\n");
           sleep(1);
       }

       if ( pipe(writepipe) < 0 )
       {
           ...handle error case...
       }


       if ( (childpid = fork()) < 0)
       {
           fprintf(stderr,"child failed\n");
       }
       else if ( 0 == childpid )   /* in the child */
       {
           dup2(CHILD_READ,  STDIN_FILENO);
           //close(CHILD_READ); // doesn't seem to matter
           close(PARENT_WRITE);

           execv("/usr/bin/ffmpeg",(char **)parameters);
           return;
       }
       else                /* in the parent */
       {
           fprintf(stderr,"THREAD CHILD PID: %d\n",childpid);
           close(CHILD_READ);

           while ( last_frame_written > -1 && 0==sigusr_thread[param] )
           {
               if ( last_frame_read != last_frame_written )
               {
                   // send frame to child (ffmpeg)
                   last_frame_read = last_frame_written;
                   bytes_written_debug = write(PARENT_WRITE,video_buffer[last_frame_read], buffer_size);
                   if ( bytes_written_debug < 0 )
                   {
                       fprintf(stderr, "write error\n");
                       break;
                   }
               }

               usleep(10000); // assume ~100Hz rate
           }

    /// Problems begin now: no more data from main process,
    /// Shouldn't this close "close" the pipe created with dup2 and hence EOF ffmpeg?
           if ( close(PARENT_WRITE) )
           {
               fprintf(stderr,"\n\nclose failure! wtf?\n\n\n");
           }

    // debug sleep:
    // waiting 10 sec doesn't seem to help...
    // trying to give ffmpeg some time if it needs it
           sleep(10);

    // kill never fails here:
           if ( !kill(childpid,SIGINT) )
           {
               fprintf(stderr, "\n\nkill child %d\n", childpid);
           }
           else
           {
               fprintf(stderr, "\n\nkill failed for child %d\n", childpid);
           }

           fprintf(stderr,"\n\nwaiting\n\n\n");
           int status = 0;

    // wait forever (in most cases); ps -axw shows all the ffmpeg's
           wait(&status);
       }
    }




    int main()
    {
       ...
       for ( int i = 0; i < MAXTHREADS; ++i)
       {
           sigusr[i] = 0;
           sigusr_thread[i] = 0;
           param[i] = i;
           iret = pthread_create( &thread[i], NULL, encoder_thread, (void*) &param[i] );
       }
       ...

       // Maybe this is important to the pthread signaling?
       // Don't think so because thread's SIGINT isn't picked up by signal handler (not shown)
       sigemptyset(&set);
       sigaddset(&set, SIGHUP);
       sigaddset(&set, SIGINT);
       sigaddset(&set, SIGUSR1);
       sigaddset(&set, SIGUSR2);
       sigaddset(&set, SIGALRM);

       /* block out these signals */
       sigprocmask(SIG_BLOCK, &set, NULL);

       ...read file/populate frame buffer until file exhausted...

       fprintf(stderr, "waiting for threads to exit\n");

       for ( int i = 0; i < MAXTHREADS; ++i)
       {
           sigusr_thread[i] = 1;
           pthread_join( thread[i], NULL);
       }
       fprintf(stderr, "done waiting for threads to exit\n");

       ...

       return 0;
    }

    I've embedded comments and questions in the thread's parent code after the frame buffer read/write loop.

    Hope I've provided enough detail - stackoverflow posting noob ! Thank you.

  • Apply sound effects on a video file

    31 mars 2013, par talhamalik22

    I am a little miss guided here and it seems i am totally lost. I am developing an android app and its core idea is to develop a video recorder and video player that applies some sound effects on the voice of the people or any sound that it records. Sound effect means that if i make a video of a person who is giving some speech then there should be no effect on video but his/her voice should appear like voice in talking tom cat app. I hope you understand the idea. Similar app is Helium Booth you can check it here. I am trying to use libraries like libSonic, libpd and tried to use XUGGLE too.
    Read somewhere that Xuggle is not really developed for mobile devices so left it. Now what i want is that it should apply this effect on voice on the run time i.e while recording the pitch of the sound should be alterd and saved immediately. And what i am getting with these libraries is that i can apply sound effect after video is recorded. So it means i need to rip the audio from the video and then apply the change in pitch and frequency and again concatenate this audio file with the old video file. And i have no idea how to do it.
    Please show me the right approach and tools if possible.

    Regards