Recherche avancée

Médias (91)

Autres articles (62)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (13838)

  • How to get the highest resolution, dividable by 2 that contains the video without black borders after rotation ?

    22 avril 2016, par Vitalis Hommel

    I rotate a video. Then my goal is to get the biggest resolution, dividable by 2 that contains the video without black borders.

    rotated and bigger

    to

    rotated, smaller and dividable by 2

    My approach.

    ffmpeg -ss 6 -i "t.MP4" -ss 0 -t 5 -vf "rotate='8*PI/180:ow=hypot(iw,ih):oh=ow', scale='1920:1920', crop='1920:1080:0:420'" -c:v libx264 -crf 28 -acodec copy "t2.MP4"

    But that does not meet the criteria. Which command do I need ?

  • Advice about older android, VideoView and resolutions

    20 avril 2016, par Diogo Garcia

    I’ve been testing webm and mp4 for videoView and looking around for quite some time and right now the best way for me to play a video in a older android(2.3.3+) is using mp4 AVC-Baseline using the code

    "ffmpeg.exe" -i "intro.mp4" -codec:v libx264 -profile:v baseline
    -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=432:320 -codec:a aac -strict experimental -b:a 96k -f mp4 "intro_result.mp4"

    By far this is the best solution for my android 2.3.3 device... But this resolution is very low when using it in a bigger device for example it gets blurry, so I tried to increase the resolution but it crashes the video when I try to run in my android 2.3.3 device.

    Does anyone has any idea how to be able to view this video no matter the resolution of the device ?

    I was thinking about keep a high quality video inside the app and then check if the device has a low resolution and somehow try to resize the hiquality video before injecting it inside the VideoView. But I don’t even know if it is possible...

  • Encode video with FFmpeg fps have been wrong

    7 novembre 2016, par Burak Hamuryen

    I’m trying to encod a video with FFmpeg but i have a problem about fps.
    So i build the sample code as follows

    AVCodec *codec;
    AVCodecContext *c = NULL;
    int i, ret, x, y, got_output;
    FILE *f;
    AVFrame *frame;
    AVPacket pkt;
    uint8_t endcode[] = { 0, 0, 1, 0xb7 };

    printf("Encode video file %s\n", filename);

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

    c = avcodec_alloc_context3(codec);
    if (!c) {
       fprintf(stderr, "Could not allocate video codec context\n");
       exit(1);
    }

    /* 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.num = 1;
    c->time_base.den = 5; //changed

    /* emit one intra frame every ten frames
    * check frame pict_type before passing frame
    * to encoder, if frame->pict_type is AV_PICTURE_TYPE_I
    * then gop_size is ignored and the output of encoder
    * will always be I frame irrespective to gop_size
    */
    c->gop_size = 10;
    c->max_b_frames = 1;
    c->pix_fmt = AV_PIX_FMT_YUV420P;

    if (codec_id == AV_CODEC_ID_H264)
       av_opt_set(c->priv_data, "preset", "slow", 0);

    /* open it */
    if (avcodec_open2(c, codec, NULL) < 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);
    }

    frame = av_frame_alloc();
    if (!frame) {
       fprintf(stderr, "Could not allocate video frame\n");
       exit(1);
    }
    frame->format = c->pix_fmt;
    frame->width = c->width;
    frame->height = c->height;

    /* the image can be allocated by any means and av_image_alloc() is
    * just the most convenient way if av_malloc() is to be used */
    ret = av_image_alloc(frame->data, frame->linesize, c->width, c->height,
       c->pix_fmt, 32);
    if (ret < 0) {
       fprintf(stderr, "Could not allocate raw picture buffer\n");
       exit(1);
    }

    /* encode 5 second of video */
    for (i = 0; i < 25; i++) {
       av_init_packet(&pkt);
       pkt.data = NULL;    // packet data will be allocated by the encoder
       pkt.size = 0;

       fflush(stdout);
       /* prepare a dummy image */
       /* Y */
       for (y = 0; y < c->height; y++) {
           for (x = 0; x < c->width; x++) {
               frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3;
           }
       }

       /* Cb and Cr */
       for (y = 0; y < c->height / 2; y++) {
           for (x = 0; x < c->width / 2; x++) {
               frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2;
               frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5;
           }
       }

       frame->pts = i;

       /* encode the image */
       ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
       if (ret < 0) {
           fprintf(stderr, "Error encoding frame\n");
           exit(1);
       }

       if (got_output) {
           printf("Write frame %3d (size=%5d)\n", i, pkt.size);
           fwrite(pkt.data, 1, pkt.size, f);
           av_free_packet(&pkt);
       }
    }

    /* get the delayed frames */
    for (got_output = 1; got_output; i++) {
       fflush(stdout);

       ret = avcodec_encode_video2(c, &pkt, NULL, &got_output);
       if (ret < 0) {
           fprintf(stderr, "Error encoding frame\n");
           exit(1);
       }

       if (got_output) {
           printf("Write frame %3d (size=%5d)\n", i, pkt.size);
           fwrite(pkt.data, 1, pkt.size, f);
           av_free_packet(&pkt);
       }
    }

    /* add sequence end code to have a real mpeg file */
    fwrite(endcode, 1, sizeof(endcode), f);
    fclose(f);

    avcodec_close(c);
    av_free(c);
    av_freep(&frame->data[0]);
    av_frame_free(&frame);
    printf("\n");

    and I changed the following parts from the original

    c->time_base.num = 1;
    c->time_base.den = 5;

    after these changes, i expect a video to be composed of 5 seconds and 5 fps.
    But when i play the output video file, the video ends in 1 2 seconds.
    The ffprob output of output video is as follows.

    Edit :
    ffprobe output added as a text

    ffprobe version 2.0.1 Copyright (c) 2007-2013 the FFmpeg developers
     built on Sep 26 2013 02:00:03 with gcc 4.8.1 (GCC)
     configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
     libavutil      52. 38.100 / 52. 38.100
     libavcodec     55. 18.102 / 55. 18.102
     libavformat    55. 12.100 / 55. 12.100
     libavdevice    55.  3.100 / 55.  3.100
     libavfilter     3. 79.101 /  3. 79.101
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, h264, from 'C:\Users\bhamuryen\Desktop\Dev\Test\ffmpeg_test\ffmpeg_test\test.h264':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: h264 (High), yuv420p, 352x288, 5 fps, 5 tbr, 1200k tbn, 10 tbc
    [STREAM]
    index=0
    codec_name=h264
    codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    profile=High
    codec_type=video
    codec_time_base=1/10
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    width=352
    height=288
    has_b_frames=1
    sample_aspect_ratio=0:1
    display_aspect_ratio=0:1
    pix_fmt=yuv420p
    level=13
    timecode=N/A
    id=N/A
    r_frame_rate=10/2
    avg_frame_rate=5/1
    time_base=1/1200000
    start_pts=N/A
    start_time=N/A
    duration_ts=N/A
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0

    The output video file played with VLC and VLC statistic is as follows.

    vlc output

    As shown, i setted fps 5 but vlc read it like 10 fps also ffprobe say to us

    Stream #0:0 : Video : h264 (High), yuv420p, 352x288, 5 fps, 5 tbr, 1200k tbn, 10 tbc

    and

    codec_time_base=1/10

    i think the important thing is codec_time_base=1/10 and 10 tbc.
    What is wrong in this code ? i don’t know exactly the reason for the problem.
    How can i create a video(5 fps -10 fps or custom fps) and play correctly the created video ?

    Thanks for your help.