Recherche avancée

Médias (2)

Mot : - Tags -/rotation

Autres articles (106)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Submit enhancements and plugins

    13 avril 2011

    If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
    You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone.

Sur d’autres sites (10543)

  • FFmpeg sample code for creating a video file from still images JNI Android

    21 juin 2012, par anish

    How i modify the following FFMPEG sample code for creating a video file from still images that i am having in my android phone. I am using JNI for invoking ffmpeg.

    JNIEXPORT void JNICALL videoEncodeExample((JNIEnv *pEnv, jobject pObj, jstring filename)

       {
        AVCodec *codec;
        AVCodecContext *c= NULL;
        int i, out_size, size, x, y, outbuf_size;
        FILE *f;
        AVFrame *picture;
        uint8_t *outbuf, *picture_buf;

        printf("Video encoding\n");

        /* find the mpeg1 video encoder */
        codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);
        if (!codec) {
            fprintf(stderr, "codec not found\n");
            exit(1);
        }

        c= avcodec_alloc_context();
        picture= avcodec_alloc_frame();

        /* put sample parameters */
        c->bit_rate = 400000;
        /* resolution must be a multiple of two */
        c->width = 352;
        c->height = 288;
        /* frames per second */
        c->time_base= (AVRational){1,25};
        c->gop_size = 10; /* emit one intra frame every ten frames */
        c->max_b_frames=1;
        c->pix_fmt = PIX_FMT_YUV420P;

        /* open it */
        if (avcodec_open(c, codec) < 0) {
            fprintf(stderr, "could not open codec\n");
            exit(1);
        }

        f = fopen(filename, "wb");
        if (!f) {
            fprintf(stderr, "could not open %s\n", filename);
            exit(1);
        }

        /* alloc image and output buffer */
        outbuf_size = 100000;
        outbuf = malloc(outbuf_size);
        size = c->width * c->height;
        picture_buf = malloc((size * 3) / 2); /* size for YUV 420 */

        picture->data[0] = picture_buf;
        picture->data[1] = picture->data[0] + size;
        picture->data[2] = picture->data[1] + size / 4;
        picture->linesize[0] = c->width;
        picture->linesize[1] = c->width / 2;
        picture->linesize[2] = c->width / 2;

        /* encode 1 second of video */
        for(i=0;i<25;i++) {
            fflush(stdout);
            /* prepare a dummy image */
            /* Y */
            for(y=0;yheight;y++) {
                for(x=0;xwidth;x++) {
                    picture->data[0][y * picture->linesize[0] + x] = x + y + i * 3;
                }
            }

            /* Cb and Cr */
            for(y=0;yheight/2;y++) {
                for(x=0;xwidth/2;x++) {
                    picture->data[1][y * picture->linesize[1] + x] = 128 + y + i * 2;
                    picture->data[2][y * picture->linesize[2] + x] = 64 + x + i * 5;
                }
            }

            /* encode the image */
            out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
            printf("encoding frame %3d (size=%5d)\n", i, out_size);
            fwrite(outbuf, 1, out_size, f);
        }

        /* get the delayed frames */
        for(; out_size; i++) {
            fflush(stdout);

            out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);
            printf("write frame %3d (size=%5d)\n", i, out_size);
            fwrite(outbuf, 1, out_size, f);
        }

        /* add sequence end code to have a real mpeg file */
        outbuf[0] = 0x00;
        outbuf[1] = 0x00;
        outbuf[2] = 0x01;
        outbuf[3] = 0xb7;
        fwrite(outbuf, 1, 4, f);
        fclose(f);
        free(picture_buf);
        free(outbuf);

        avcodec_close(c);
        av_free(c);
        av_free(picture);
        printf("\n");
       }

    Thanks and Regards
    Anish

  • ffmpeg h.264 video plays in Safari but not in Chrome

    6 mars 2016, par ensnare

    I’m using ffmpeg to encode a .MOV raw video into a compressed H.264 video for display on an html5 website. I’m using the below string to encode the video :

    ffmpeg -y \
    -i in.mov
    -b 3500k -bt 4000k \
    -acodec libfaac -ac 2 -ar 48000 -ab 192k \
    -vcodec libx264 -vpre ultrafast -vpre baseline \
    out.mp4

    The resulting video looks great and plays fine in Safari, but Chrome can’t recognize it. Any ideas ?

    Thanks.

  • Node.js asynchronous video conversion slow

    9 décembre 2016, par lukstei

    I wrote a little website/service, which can download a video from a website (currently Youtube) and converts it on the fly to an mp3 file and sends this file back as the response.

    For example, you when you request http://localhost:8000/v=http ://www.youtube.com/watch?v=HhoewflkQu0, then it will download this video and response the audio layer encoded in MP3.

    This all works very well, my problem is that this is very slow and I can’t figure out why.


    Simplified the script behaves like this :

    Download the video and write it to the stdin of ffmpeg, and the stdout goes to the response.
    Video (MP4, FLV) -> FFMPEG -> MP3

    I used curl to figure out how fast the script is :

    $ curl http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0

    I get only about 5-10k.

    So why is this so slow ?

    1. The server, from which I am downloading the video is slow.
    2. The conversion is slow (because of a slow CPU).
    3. The data transfer between node.js -> FFMPEG is slow.

    I tried to download the video in a normal download manager, and i got about 320k, which is my normal download speed, so the first point isn’t the bottleneck.

    To point 2 and 3, I tried to write a local file to the stdin, and I got about 600k so that isn’t it either.

    So why is my script so slow, and what can I do to make it faster ?

    https://gist.github.com/1304637

    Thanks in advance.