Recherche avancée

Médias (91)

Autres articles (104)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, 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 (...)

  • 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 (...)

Sur d’autres sites (11782)

  • When merging video and audio, converting audio to AAC, sound is missed at the end 3 seconds

    10 octobre 2013, par profuel

    I have to build video from images and some audio clip.
    Audio is much longer, so I have to mute last 5 seconds of audio track, cutting to video length.
    My issue is that adding AAC encoding to audio removes last 2-5 seconds of audio in resulted video.

    Here are my command lines :

    ffmpeg -i sound.mp3 -i video.mp4 -shortest out.mp4 -> results in correct audio in result video with played audio over 100% of movie

    ffmpeg -i sound.mp3 -i video.mp4 -acodec aac -ab 160000 -strict experimental -shortest out.mp4 -> not correct audio, gets crop at end of video for 2-5 seconds


    The problem appears for me both on Windows and on CentOS 6.4, no matter which version of ffmpeg is used.

    FFMPEG details (downloaded from http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2013-06-01.tar.gz )
    ffmpeg version N-53724-g716dbc7 Copyright (c) 2000-2013 the FFmpeg developers
    built on Jun 1 2013 05:26:08 with gcc 4.6 (Debian 4.6.3-1)
    configuration : —prefix=/root/ffmpeg-static/64bit —extra-cflags='-I/root/ffmpeg-static/64bit/include -static' —extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' —extra-libs='-lxml2 -lexpat -lfreetype' —enable-static —disable-shared —disable-ffserver —disable-doc —enable-bzlib —enable-zlib —enable-postproc —enable-runtime-cpudetect —enable-libx264 —enable-gpl —enable-libtheora —enable-libvorbis —enable-libmp3lame —enable-gray —enable-libass —enable-libfreetype —enable-libopenjpeg —enable-libspeex —enable-libvo-aacenc —enable-libvo-amrwbenc —enable-version3 —enable-libvpx
    libavutil 52. 34.100 / 52. 34.100
    libavcodec 55. 12.102 / 55. 12.102
    libavformat 55. 8.102 / 55. 8.102
    libavdevice 55. 2.100 / 55. 2.100
    libavfilter 3. 73.100 / 3. 73.100
    libswscale 2. 3.100 / 2. 3.100
    libswresample 0. 17.102 / 0. 17.102
    libpostproc 52. 3.100 / 52. 3.100

  • ffmpeg error on decode

    25 octobre 2013, par ademar111190

    I'm developing an android app with the libav and I'm trying decode a 3gp with code below :

    #define simbiLog(...) __android_log_print(ANDROID_LOG_DEBUG, "simbiose", __VA_ARGS__)

    ...

    AVCodec *codec;
    AVCodecContext *c = NULL;
    int len;
    FILE *infile, *outfile;
    uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
    AVPacket avpkt;
    AVFrame *decoded_frame = NULL;

    simbiLog("inbuf size: %d", sizeof(inbuf) / sizeof(inbuf[0]));

    av_register_all();
    av_init_packet(&avpkt);

    codec = avcodec_find_decoder(AV_CODEC_ID_AMR_NB);
    if (!codec) {
       simbiLog("codec not found");
       return ERROR;
    }

    c = avcodec_alloc_context3(codec);
    if (!c) {
       simbiLog("Could not allocate audio codec context");
       return ERROR;
    }

    int open = avcodec_open2(c, codec, NULL);
    if (open < 0) {
       simbiLog("could not open codec %d", open);
       return ERROR;
    }

    infile = fopen(inputPath, "rb");
    if (!infile) {
       simbiLog("could not open %s", inputPath);
       return ERROR;
    }

    outfile = fopen(outputPath, "wb");
    if (!outfile) {
       simbiLog("could not open %s", outputPath);
       return ERROR;
    }

    avpkt.data = inbuf;
    avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, infile);
    int iterations = 0;

    while (avpkt.size > 0) {
       simbiLog("iteration %d", (++iterations));
       simbiLog("avpkt.size %d avpkt.data %X", avpkt.size, avpkt.data);
       int got_frame = 0;

       if (!decoded_frame) {
           if (!(decoded_frame = avcodec_alloc_frame())) {
               simbiLog("out of memory");
               return ERROR;
           }
       } else {
           avcodec_get_frame_defaults(decoded_frame);
       }

       //below the error, but it isn't occur on first time, only in 4th loop interation
       len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);
       if (len < 0) {
           simbiLog("Error while decoding error %d frame %d duration %d", len, got_frame, avpkt.duration);
           return ERROR;
       } else {
           simbiLog("Decoding length %d frame %d duration %d", len, got_frame, avpkt.duration);
       }

       if (got_frame) {
           int data_size = av_samples_get_buffer_size(NULL, c->channels, decoded_frame->nb_samples, c->sample_fmt, 1);
           size_t* fwrite_size = fwrite(decoded_frame->data[0], 1, data_size, outfile);
           simbiLog("fwrite returned %d", fwrite_size);
       }
       avpkt.size -= len;
       avpkt.data += len;
       if (avpkt.size < AUDIO_REFILL_THRESH) {
           memmove(inbuf, avpkt.data, avpkt.size);
           avpkt.data = inbuf;
           len = fread(avpkt.data + avpkt.size, 1, AUDIO_INBUF_SIZE - avpkt.size, infile);
           if (len > 0)
               avpkt.size += len;
           simbiLog("fread returned %d", len);
       }
    }

    fclose(outfile);
    fclose(infile);

    avcodec_close(c);
    av_free(c);
    av_free(decoded_frame);

    but I'm getting the follow log and error :

    inbuf size: 20488
    iteration 1
    avpkt.size 3305 avpkt.data BEEED40C
    Decoding length 13 frame 1 duration 0
    fwrite returned 640
    fread returned 0
    iteration 2
    avpkt.size 3292 avpkt.data BEEED40C
    Decoding length 13 frame 1 duration 0
    fwrite returned 640
    fread returned 0
    iteration 3
    avpkt.size 3279 avpkt.data BEEED40C
    Decoding length 14 frame 1 duration 0
    fwrite returned 640
    fread returned 0
    iteration 4
    avpkt.size 3265 avpkt.data BEEED40C
    Error while decoding error -1052488119 frame 0 duration 0

    the audio file I'm trying decode :

    $ avprobe blue.3gp
    avprobe version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2007-2013 the Libav developers
     built on Mar 30 2013 22:23:21 with gcc 4.7.2
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'blue.3gp':
     Metadata:
       major_brand     : 3gp4
       minor_version   : 0
       compatible_brands: isom3gp4
       creation_time   : 2013-09-19 18:53:38
     Duration: 00:00:01.52, start: 0.000000, bitrate: 17 kb/s
       Stream #0.0(eng): Audio: amrnb, 8000 Hz, 1 channels, flt, 12 kb/s
       Metadata:
         creation_time   : 2013-09-19 18:53:38

    thanks a lot !


    EDITED

    I read on ffmper documentation about the method avcodec_decode_audio4 the follow :

    @warning The input buffer, avpkt->data must be FF_INPUT_BUFFER_PADDING_SIZE larger than the actual read bytes because some optimized bitstream readers read 32 or 64 bits at once and could read over the end.
    @note You might have to align the input buffer. The alignment requirements depend on the CPU and the decoder.

    and I see here a solution using posix_memalign, to android i founded a similar method called memalign, so i did the change :

    removed :

    uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];

    inserted :

    int inbufSize = sizeof(uint8_t) * (AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE);
    uint8_t *inbuf = memalign(FF_INPUT_BUFFER_PADDING_SIZE, inbufSize);
    simbiLog("inbuf size: %d", inbufSize);
    for (; inbufSize >= 0; inbufSize--)
       simbiLog("inbuf position: %d index: %p", inbufSize, &inbuf[inbufSize]);

    I'm getting the correct memory sequence position, but the error not changed.

    A piece of outpout :

    inbuf position: 37 index: 0x4e43d745
    inbuf position: 36 index: 0x4e43d744
    inbuf position: 35 index: 0x4e43d743
    inbuf position: 34 index: 0x4e43d742
    inbuf position: 33 index: 0x4e43d741
    inbuf position: 32 index: 0x4e43d740
    inbuf position: 31 index: 0x4e43d73f
    inbuf position: 30 index: 0x4e43d73e
    inbuf position: 29 index: 0x4e43d73d
    inbuf position: 28 index: 0x4e43d73c
    inbuf position: 27 index: 0x4e43d73b
    inbuf position: 26 index: 0x4e43d73a
    inbuf position: 25 index: 0x4e43d739
    inbuf position: 24 index: 0x4e43d738
    inbuf position: 23 index: 0x4e43d737
    inbuf position: 22 index: 0x4e43d736
    inbuf position: 21 index: 0x4e43d735
    inbuf position: 20 index: 0x4e43d734
    inbuf position: 19 index: 0x4e43d733
  • extracting h264 raw video stream from mp4 or flv with ffmpeg generate an invalid stream

    10 octobre 2013, par neo2006

    I'm trying to extract the video stream from an mp4 or flv h264 video (youtube video) using ffmpeg. The original video (test.flv) play without trouble with ffplay , ffprobe gives an error as follow :

    ffprobe version N-55515-gbbbd959 Copyright (c) 2007-2013 the FFmpeg developers
    built on Aug 13 2013 18:06:32 with gcc 4.7.3 (GCC)
    configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
    isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
    le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
    e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
    ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
    ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
    eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
    amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
    enable-libxvid --enable-zlib
     libavutil      52. 42.100 / 52. 42.100
     libavcodec     55. 27.100 / 55. 27.100
     libavformat    55. 13.102 / 55. 13.102
     libavdevice    55.  3.100 / 55.  3.100
     libavfilter     3. 82.100 /  3. 82.100
     libswscale      2.  4.100 /  2.  4.100
     libswresample   0. 17.103 /  0. 17.103
     libpostproc    52.  3.100 / 52.  3.100
    [flv @ 000000000031ea80] Stream discovered after head already parsed
    Input #0, flv, from 'test.flv':
     Metadata:
       starttime       : 0
       totalduration   : 142
       totaldatarate   : 692
       bytelength      : 12286492
       canseekontime   : true
       sourcedata      : B42B95507HH1381414522145462
       purl            :
       pmsg            :
     Duration: 00:02:22.02, start: 0.000000, bitrate: 692 kb/s
       Stream #0:0: Video: h264 (Main), yuv420p, 640x268, 568 kb/s, 23.98 tbr, 1k t
    bn, 47.95 tbc
       Stream #0:1: Audio: aac, 44100 Hz, stereo, fltp, 131 kb/s
       Stream #0:2: Data: none
    Unsupported codec with id 0 for input stream 2

    to get rid of the extra streams ( I only needs the video) I used the following ffmpeg command line :

    ffmpeg -i test.flv -map 0:0 -vcodec copy -an -f h264 test.h264

    The new stream is unreadable by any player including ffplay and gives an error with ffprobe :
    test.h264 : Invalid data found when processing inputq= 0B f=0/0

    Any body have an idea about what am I doing wrong ?

    I also tried simpler youtube command line :

    ffmpeg -i test.flv -vcodec copy -an test.h264

    if I use another format (avi for example) :

    ffmpeg -i test.flv -vcodec copy -an test.avi

    the output video is valid.

    If I transcode the video

    ffmpeg -i test.flv -an test.h264

    the output is also valid

    Any suggestions ?