Recherche avancée

Médias (0)

Mot : - Tags -/logo

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (57)

  • 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 ;

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

Sur d’autres sites (10027)

  • ffmpeg produces bad output when called from execve in c++

    31 mai 2016, par Arheisel

    im writing a c++ program that involves ffmpeg being called from a c++ program. a couple of days ago i got it working using std::system

    std::system("ffmpeg -threads auto -y -r 1.74659 -i /mnt/ev_ramdsk/1/%05d-capture.jpg -px_fmt yuv420p -preset ultrafast -r 10 /mnt/ev_ramdsk/1/video.mp4");

    but this only worked once now this produces .mp4 videos of 8MB or so that cannot be played anywhere.. so because of a suggestion in a previous question i moved to execve.

    Here is my code

    child_pid = fork();
           if(child_pid < 0){
               syslog(LOG_ERR, "ERROR: ffmpeg forking failed");
               return false;
           }
           else if(child_pid > 0){
               syslog(LOG_DEBUG, "DEBUG: forking succeeded, pid: %d", child_pid);
           }
           else if(child_pid == 0){
               char *newargv[16];
               for(int i=0; i < 15; i++) newargv[i] = (char *)malloc(sizeof(char) * 60); //allocate the array in memory
               strcpy(newargv[0], "/usr/bin/ffmpeg");
               strcpy(newargv[1], "-threads");
               strcpy(newargv[2], "auto");
               strcpy(newargv[3], "-y");
               strcpy(newargv[4], "-framerate");
               tempSS << fps;
               strcpy(newargv[5], tempSS.str().c_str());
               tempSS.str(std::string());
               strcpy(newargv[6], "-i");
               strcpy(newargv[7], std::string(conf->dir_ram + dest + "%05d-capture.jpg").c_str());
               strcpy(newargv[8], "-pix_fmt");
               strcpy(newargv[9], "yuv420p");
               strcpy(newargv[10], "-preset");
               strcpy(newargv[11], "ultrafast");
               strcpy(newargv[12], "-r");
               strcpy(newargv[13], "25");
               strcpy(newargv[14], std::string(conf->dir_ram + dest + "video.mp4").c_str());
               newargv[15] = NULL;

               for(int i=0; i < 15; i++){
                   tempSS << "newargv[" << i << "] = \"" << newargv[i] << "\", ";
               }
               syslog(LOG_DEBUG, "DEBUG:newargv: %s", tempSS.str().c_str());
               tempSS.str(std::string());

               char *newenviron[] = { NULL };

               if(execve(newargv[0], newargv, newenviron) == -1){
                   syslog(LOG_ERR, "ERROR: execve returned -1");
                   exit(EXIT_SUCCESS);
               }
           }

           wpid = wait(&status);
           syslog(LOG_DEBUG, "DEBUG: ffmpeg child terminated, pid: %d, status: %d", wpid, status);

    the output of syslog is :

    May 28 00:25:03 SERVER dt_ev_maker[10471]: DEBUG: forking succeeded, pid: 10658
    May 28 00:25:03 SERVER dt_ev_maker[10658]: DEBUG:newargv:
    newargv[0] = "/usr/bin/ffmpeg",
    newargv[1] = "-threads",
    newargv[2] = "auto",
    newargv[3] = "-y",
    newargv[4] = "-framerate",
    newargv[5] = "1.45097",
    newargv[6] = "-i",
    newargv[7] = "/mnt/ev_ramdsk/1/%05d-capture.jpg",
    newargv[8] = "-pix_fmt",
    newargv[9] = "yuv420p",
    newargv[10] = "-preset",
    newargv[11] = "ultrafast",
    newargv[12] = "-r",
    newargv[13] = "25",
    newargv[14] = "/mnt/ev_ramdsk/1/video.mp4",
    May 28 00:25:03 SERVER dt_ev_maker[10471]: DEBUG: ffmpeg child terminated, pid: 10658, status: 256

    in this case the video has about 90B size and is also corrupted.

    NOTE : if i run the same command from the command line the video can be played normally.

    what am i doing wrong ?

    Thanks in advance !

    EDIT

    Thanks to ouroborus (changes submitted above) i got it to make 18MB videos, but i cant play them.

  • avformat/hlsenc : add hls_flag option to write segments to temporary file until complete

    7 février 2017, par Aman Gupta
    avformat/hlsenc : add hls_flag option to write segments to temporary file until complete
    

    Adds a `-hls_flags +temp_file` which will write segment data to
    filename.tmp, and then rename to filename when the segment is complete.

    This patch is similar in spirit to one used in Plex’s ffmpeg fork, and
    allows a transcoding webserver to ensure incomplete segment files are
    never served up accidentally.

    Reviewed-by : Hendrik Leppkes <h.leppkes@gmail.com>
    Reviewed-by : Bodecs Bela <bodecsb@vivanet.hu>
    Signed-off-by : Aman Gupta <aman@tmm1.net>
    Signed-off-by : Steven Liu <lq@chinaffmpeg.org>

    • [DH] doc/muxers.texi
    • [DH] libavformat/hlsenc.c
  • Got a crash when I run a ffmpeg comand on an certain phone

    31 août 2016, par Kingty Teng

    here is the code I change from ffmpeg.c ,it can be run correct.
    BUT,IT ALWAYS crashed on an cenrtain phone after run this code.

    JNIEXPORT jstring JNICALL Java_com_p1_mobile_android_media_VideoKit_run(
       JNIEnv* env, jobject thiz, jobjectArray strArray)
    {


       int ret, i, pid;
       int pipeFD[2];
       char retBuffer[2];
       char resultString[4096];

       int argc = (*env)->GetArrayLength(env, strArray);

       char ** argv = (char **)malloc(sizeof(char*)*argc);

       for (i = 0; i &lt; argc; i++) {
           argv[i] = (*env)->GetStringUTFChars(env,
                                 (jstring)(*env)->GetObjectArrayElement(env, strArray, i), NULL);
       }

       // reset to FAIL
       ret = 1;
       memset(retBuffer, 0, sizeof(retBuffer));
       memset(resultString, 0, sizeof(resultString));

       pipe(pipeFD);

       pid = fork();


       if (pid &lt; 0) {
           goto done;
       } else if (pid == 0) {
           // in child process, do command work


           close(pipeFD[0]);

           init();

           av_log_set_callback(log_callback);

           ret = run_ffempeg_command(argc, argv);


           s_task_completed = 1;

           sprintf(retBuffer, "%d", ret);
           write(pipeFD[1], retBuffer, sizeof(retBuffer));

           char * result_record = get_record_result();
           if (result_record != NULL &amp;&amp; strlen(result_record) > 0) {
               sprintf(resultString, "%s", result_record);
           } else {
               if (ret == 0 &amp;&amp; s_task_completed == 1) {
                   sprintf(resultString, "%s", "SUCCESS");
               } else {
                   sprintf(resultString, "%s", "FAIL");
               }
           }

           write(pipeFD[1], resultString, sizeof(resultString));

           exit(0);
       } else {
           close(pipeFD[1]);

           read(pipeFD[0], retBuffer, sizeof(retBuffer));

           ret = (retBuffer[0] == '1') ? 1 : 0;
           memset(resultString, 0, sizeof(resultString));
           read(pipeFD[0], resultString, sizeof(resultString));
       }

    done:

       for (i=0; iReleaseStringUTFChars(env,
                       (jstring)(*env)->GetObjectArrayElement(env, strArray, i), argv[i]);
       }

       free(argv);

       //close();

       if (strlen(resultString) > 0) {
           // workaround for UTF-8 issue
           jbyteArray array = (*env)->NewByteArray(env, sizeof(resultString));
           (*env)->SetByteArrayRegion(env, array, 0, sizeof(resultString), resultString);
           jstring strEncode = (*env)->NewStringUTF(env, "UTF-8");
           jclass cls = (*env)->FindClass(env, "java/lang/String");
           jmethodID ctor = (*env)->GetMethodID(env, cls, "<init>", "([BLjava/lang/String;)V");

           jstring object = (jstring) (*env)->NewObject(env, cls, ctor, array, strEncode);

           return object;
       } else {
           return (*env)->NewStringUTF(env, "FAIL");
       }
    }
    </init>

    here is the crash log.almost phone can run this well,only on one phone after run the jni ,any button i touched will bring this crash
    ,it’s really appreciate if anybody can help

       08-31 14:59:23.580 279-279/? D/AEE/AED: $===AEE===AEE===AEE===$
    08-31 14:59:23.580 279-279/? D/AEE/AED: p 0 poll events 1 revents 0
    08-31 14:59:23.580 279-279/? D/AEE/AED: not know revents:0
    08-31 14:59:23.580 279-279/? D/AEE/AED: p 1 poll events 1 revents 0
    08-31 14:59:23.580 279-279/? D/AEE/AED: not know revents:0
    08-31 14:59:23.580 279-279/? D/AEE/AED: p 2 poll events 1 revents 1
    08-31 14:59:23.580 279-279/? D/AEE/AED: aed_main_fork_worker: generator 0xf7017148, worker 0xffbe76d8, recv_fd 0
    08-31 14:59:23.580 279-279/? D/AEE/AED: p 3 poll events 1 revents 0
    08-31 14:59:23.580 279-279/? D/AEE/AED: not know revents:0
    08-31 14:59:23.580 279-279/? D/AEE/AED: p 4 poll events 1 revents 0
    08-31 14:59:23.580 279-279/? D/AEE/AED: not know revents:0
    08-31 14:59:23.580 279-279/? D/AEE/AED: p 5 poll events 0 revents 0
    08-31 14:59:23.580 279-279/? D/AEE/AED: not know revents:0
    08-31 14:59:23.580 8546-8546/? I/AEE/AED: handle_request(0)
    08-31 14:59:23.581 8546-8546/? I/AEE/AED: check process 29910 name:1.mobile.putong
    08-31 14:59:23.581 8546-8546/? I/AEE/AED: tid 29961 abort msg address is:0x83b09000, si_code is:-6 (request from 29910:10152)
    08-31 14:59:23.581 8546-8546/? I/AEE/AED: BOOM: pid=29910 uid=10152 gid=10152 tid=29961
    08-31 14:59:23.582 8546-8546/? I/AEE/AED: [OnPurpose Redunant in void preset_info(aed_report_record*, int, int)] pid: 29910, tid: 29961, name: RenderThread  >>> com.p1.mobile.putong &lt;&lt;&lt;
    08-31 14:59:23.634 8546-8546/? I/AEE/AED: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    08-31 14:59:23.634 8546-8546/? I/AEE/AED: Build fingerprint: 'Letv/Le1s_CN/X3:5.0.2/DBXCNOP5501304201S/66:user/release-keys'
    08-31 14:59:23.634 8546-8546/? I/AEE/AED: Revision: '0'
    08-31 14:59:23.634 8546-8546/? I/AEE/AED: ABI: 'arm'
    08-31 14:59:23.635 8546-8546/? I/AEE/AED: pid: 29910, tid: 29961, name: RenderThread  >>> com.p1.mobile.putong &lt;&lt;&lt;
    08-31 14:59:23.635 8546-8546/? I/AEE/AED: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
    08-31 14:59:23.662 8546-8546/? I/AEE/AED: Abort message: 'Failed to make current on surface 0x8c8b6e40, error=EGL_BAD_NATIVE_WINDOW'
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     r0 00000000  r1 00007509  r2 00000006  r3 00000000
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     r4 863fddc8  r5 00000006  r6 0000000b  r7 0000010c
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     r8 675bdb6c  r9 863fdd30  sl 863fdd28  fp 675bdba8
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     ip 00007509  sp 863fd838  lr 4002ee43  pc 4005206c  cpsr 600f0010
    08-31 14:59:23.662 8546-8546/? I/AEE/AED: backtrace:
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #00 pc 0003a06c  /system/lib/libc.so (tgkill+12)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #01 pc 00016e3f  /system/lib/libc.so (pthread_kill+66)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #02 pc 00017a0b  /system/lib/libc.so (raise+10)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #03 pc 00014317  /system/lib/libc.so (__libc_android_abort+34)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #04 pc 00012a4c  /system/lib/libc.so (abort+4)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #05 pc 000083c1  /system/lib/libcutils.so (__android_log_assert+88)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #06 pc 0003f07b  /system/lib/libhwui.so
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #07 pc 0003d9e1  /system/lib/libhwui.so
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #08 pc 0003ec23  /system/lib/libhwui.so
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #09 pc 0003ed1b  /system/lib/libhwui.so
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #10 pc 00040257  /system/lib/libhwui.so
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #11 pc 00040eab  /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+66)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #12 pc 00010973  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+110)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #13 pc 000609dd  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #14 pc 000165bf  /system/lib/libc.so (__pthread_start(void*)+30)
    08-31 14:59:23.662 8546-8546/? I/AEE/AED:     #15 pc 0001466b  /system/lib/libc.so (__start_thread+6)
    08-31 14:59:33.720 8546-8546/? E/AEE/AED: timed out waiting for tid=29910 to stop
    08-31 14:59:33.821 8546-8546/? E/AEE/AED: timed out waiting for tid=29915 to stop

    08-31 14:59:36.912 8546-8546/? E/AEE/AED: timed out waiting for tid=8434 to stop