Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

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

Autres articles (66)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

Sur d’autres sites (9865)

  • Recording RTP VP8 packets with FFMPEG with named pipe

    6 août 2015, par Filipe Apolinário

    I’m developing a WebRTC video session recorder, in a gateway developed in C++, where I only have access to individual RTP packets.

    When a session starts, I create two threads one that initializes a named pipe and an other that starts FFMPEG to fetch data from that pipe and store it in a matroska file, with the command :

    ffmpeg -i \\.\pipe\screenRec -f matroska D:\djhfifj.mkv

    Whenever I receive an RTP packet I send it through the pipe to FFMPEG. Although all communication is working fine, FFMPEG does not seem to be recognizing the RTP packet :

    ffmpeg version N-73633-gdfc5858 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.9.2 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --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-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
     libavutil      54. 28.100 / 54. 28.100
     libavcodec     56. 47.100 / 56. 47.100
     libavformat    56. 40.100 / 56. 40.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 21.100 /  5. 21.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.100 /  1.  2.100
     libpostproc    53.  3.100 / 53.  3.100
    [aac @ 031b3fc0] Format aac detected only with low score of 1, misdetection possible!
    [aac @ 031bd820] More than one AAC RDB per ADTS frame is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
    [aac @ 031bd820] channel element 3.13 is not allocated
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (26) exceeds limit (9).
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (60) exceeds limit (44).
    [aac @ 031bd820] Number of bands (6) exceeds limit (4).
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (30) exceeds limit (23).
    [aac @ 031bd820] Sample rate index in program config element does not match the sample rate index configured by the container.
    [aac @ 031bd820] Inconsistent channel configuration.
    [aac @ 031bd820] get_buffer() failed
    [aac @ 031bd820] Assuming an incorrectly encoded 7.1 channel layout instead of a spec-compliant 7.1(wide) layout, use -strict 1 to decode according to the specification instead.
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (16) exceeds limit (11).
    [aac @ 031bd820] Dependent coupling is not supported together with LTP
       Last message repeated 9 times
    [aac @ 031bd820] channel element 3.5 is not allocated
    [aac @ 031bd820] channel element 3.13 is not allocated
    [aac @ 031bd820] channel element 3.3 is not allocated
    [aac @ 031bd820] Number of bands (16) exceeds limit (14).
    [aac @ 031bd820] channel element 3.10 is not allocated
    [aac @ 031bd820] channel element 3.2 is not allocated
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of scalefactor bands in group (61) exceeds limit (43).
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (29) exceeds limit (13).
    [aac @ 031bd820] Sample rate index in program config element does not match the sample rate index configured by the container.
    [aac @ 031bd820] Inconsistent channel configuration.
    [aac @ 031bd820] get_buffer() failed
    [aac @ 031bd820] channel element 0.7 is not allocated
    [aac @ 031bd820] Number of bands (24) exceeds limit (15).
    [aac @ 031bd820] channel element 1.1 is not allocated
    [aac @ 031bd820] channel element 2.0 is not allocated
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of scalefactor bands in group (62) exceeds limit (41).
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (15) exceeds limit (13).
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (23) exceeds limit (2).
    [aac @ 031bd820] channel element 1.4 is not allocated
    [aac @ 031bd820] Assuming an incorrectly encoded 7.1 channel layout instead of a spec-compliant 7.1(wide) layout, use -strict 1 to decode according to the specification instead.
    [aac @ 031bd820] channel element 1.2 is not allocated
    [aac @ 031bd820] channel element 1.8 is not allocated
    [aac @ 031bd820] channel element 3.7 is not allocated
    [aac @ 031bd820] channel element 2.9 is not allocated
    [aac @ 031bd820] channel element 3.8 is not allocated
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of scalefactor bands in group (48) exceeds limit (43).
    [aac @ 031bd820] channel element 3.8 is not allocated
    [aac @ 031bd820] channel element 2.13 is not allocated
    [aac @ 031bd820] channel element 3.4 is not allocated
    [aac @ 031bd820] Dependent coupling is not supported together with LTP
       Last message repeated 13 times
    [aac @ 031bd820] channel element 2.14 is not allocated
    [aac @ 031bd820] SBR was found before the first channel element.
    [aac @ 031bd820] Sample rate index in program config element does not match the sample rate index configured by the container.
    [aac @ 031bd820] Inconsistent channel configuration.
    [aac @ 031bd820] get_buffer() failed
    [aac @ 031bd820] Number of bands (6) exceeds limit (5).
    [aac @ 031bd820] channel element 3.0 is not allocated
    [aac @ 031bd820] channel element 1.5 is not allocated
    [aac @ 031bd820] channel element 1.13 is not allocated
    [aac @ 031bd820] channel element 1.7 is not allocated
    [aac @ 031bd820] channel element 2.0 is not allocated
    [aac @ 031bd820] Dependent coupling is not supported together with LTP
       Last message repeated 13 times
    [aac @ 031bd820] channel element 3.0 is not allocated
    [aac @ 031bd820] Assuming an incorrectly encoded 7.1 channel layout instead of a spec-compliant 7.1(wide) layout, use -strict 1 to decode according to the specification instead.
    [aac @ 031bd820] SBR was found before the first channel element.
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (31) exceeds limit (30).
    [aac @ 031bd820] channel element 1.12 is not allocated
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] Number of bands (29) exceeds limit (10).
    [aac @ 031bd820] channel element 3.2 is not allocated
    [aac @ 031bd820] channel element 3.15 is not allocated
    [aac @ 031bd820] channel element 1.5 is not allocated
    [aac @ 031bd820] channel element 2.7 is not allocated
    [aac @ 031bd820] channel element 1.9 is not allocated
    [aac @ 031bd820] Number of bands (54) exceeds limit (34).
    [aac @ 031bd820] channel element 1.6 is not allocated
    [aac @ 031bd820] channel element 1.2 is not allocated
    [aac @ 031bd820] channel element 3.7 is not allocated
    [aac @ 031bd820] Reserved bit set.
    [aac @ 031bd820] ms_present = 3 is reserved.
    [aac @ 031b3fc0] decoding for stream 0 failed
    [aac @ 031b3fc0] Could not find codec parameters for stream 0 (Audio: aac (LTP), 4.0, fltp, 1506 kb/s): unspecified sample rate
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    \\.\pipe\screenRec96: could not find codec parameters
    Input #0, aac, from '\\.\pipe\screenRec96':
     Duration: N/A, bitrate: 1506 kb/s
       Stream #0:0: Audio: aac (LTP), 4.0, fltp, 1506 kb/s
    [abuffer @ 0435cd00] Value inf for parameter 'time_base' out of range [0 - 2.14748e+009]
       Last message repeated 3 times
    [abuffer @ 0435cd00] Error setting option time_base to value 1/0.
    [graph 0 input from stream 0:0 @ 0319afe0] Error applying options to the filter.
    Error opening filters!

    Is it possible to make FFMPEG understand that the packet sent is RTP with VP8 ?

  • "ffmpeg has text relocations" error in Android

    5 janvier 2015, par djzmo

    I’m building an Android video-sending application. I need the video to be compressed before being uploaded. In this case, I chose to use this Android wrapper of FFmpeg : https://github.com/hiteshsondhi88/ffmpeg-android-java

    FFmpeg error: WARNING: linker: /data/data/com.mycompany.myapplication/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
       ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
       built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
       configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
       libavutil      54.  7.100 / 54.  7.100
       libavcodec     56.  1.100 / 56.  1.100
       libavformat    56.  4.101 / 56.  4.101
       libavdevice    56.  0.100 / 56.  0.100
       libavfilter     5.  1.100 /  5.  1.100
       libswscale      3.  0.100 /  3.  0.100
       libswresample   1.  1.100 /  1.  1.100
       libpostproc    53.  0.100 / 53.  0.100
       Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/DCIM/Camera/VID_20150104_235926.mp4':
       Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       creation_time   : 2015-01-04 16:00:40
       Duration: 00:01:12.60, start: 0.000000, bitrate: 19590 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 19364 kb/s, SAR 65536:65536 DAR 16:9, 26.73 fps, 26.92 tbr, 90k tbn, 180k tbc (default)
       Metadata:
       creation_time   : 2015-01-04 16:00:40
       handler_name    : VideoHandle
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 196 kb/s (default)
       Metadata:
       creation_time   : 2015-01-04 16:00:40
       handler_name    : SoundHandle
       [libx264 @ 0x40208800] using SAR=1/1
       [libx264 @ 0x40208800] frame MB size (120x68) > level limit (1620)
       [libx264 @ 0x40208800] DPB size (1 frames, 8160 mbs) > level limit (0 frames, 8100 mbs)
       [libx264 @ 0x40208800] MB rate (219640) > level limit (40500)
       [libx264 @ 0x40208800] using cpu capabilities: none!
       [libx264 @ 0x40208800] profile Constrained Baseline, level 3.0
       [libx264 @ 0x40208800] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=crf mbtree=0 crf=28.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2500 vbv_bufsize=1835 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
       Output #0, mp4, to '/storage/emulated/0/Android/data/com.mycompany.myapplication/cache/VID_20150104_235926.mp4':
       Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       encoder         : Lavf56.4.101
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 65536:65536 DAR 16:9], q=-1--1, 2500 kb/s, 26.92 fps, 10336 tbn, 26.92 tbc (default)
       Metadata:
       creation_time   : 2015-01-04 16:00:40
       handler_name    : VideoHandle
       encoder         : Lavc56.1.100 libx264
       Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 4

    Everything seemed fine when I compress small files (below 20 seconds), but when I tried to compress larger files, I seldom get the above error in the middle of the compression process, and the process was also terminated immediately. I need the application to be able to compress one minute video to about 20-35 MB.

    Here is the FFmpeg command I used :

    ffmpeg -y -i -codec:v libx264 -profile:v baseline -level 3.0 -b:v 2500k -minrate 2500k -maxrate 2500k -bufsize 1835k -pix_fmt yuv420p -preset ultrafast -crf 28 -codec:a copy

    Any idea on what went wrong ?
    Any kind of help would be very appreciated.

  • Decoding pcm_s16le with FFMPEG ?

    31 juillet 2015, par Davide Caresia

    i have a problem decoding a wav file using ffmpeg. I’m new to it and i’m not quite used to it.

    In my application i have to input the audio file and get an array of samples to work on.
    I used ffmpeg to create a function that gets in input the path of the file, the position in time where to start to output the samples and the lenght of the chunk to decode in seconds.

    I have no reputation, so I had to make a gdrive directory where you can see the problem and the files on which I worked.

    Here it is : https://goo.gl/8KnjAj

    When I try to decode the file harp.wav everything runs fine, and I can plot the samples as in the image plot-harp.png

    The file is a WAV file encoded as : pcm_u8, 11025 Hz, 1 channels, u8, 88 kb/s

    The problems comes when i try to decode the file demo-unprocessed.wav.
    It outputs a series of samples that has no sense. It outputs a serie of samples plotted as the image graph1-demo.jpg shows.

    The file is a WAV file encoded as : pcm_s16le, 44100 Hz, 1 channels, s16, 705 kb/s

    IDK where the problem in my code is, I already checked the code before and after the decoding with FFMPEG, and it works absolutely fine.

    Here is the code for the dataReader.cpp :

    /* Start by including the necessary */
    #include "dataReader.h"
    #include <cstdlib>
    #include <iostream>
    #include <fstream>

    #ifdef __cplusplus
    extern "C" {
    #endif
       #include <libavcodec></libavcodec>avcodec.h>
       #include <libavformat></libavformat>avformat.h>
       #include <libavutil></libavutil>avutil.h>
    #ifdef __cplusplus
    }
    #endif

    using namespace std;

    /* initialization function for audioChunk */
    audioChunk::audioChunk(){
       data=NULL;
       size=0;
       bitrate=0;
    }

    /* function to get back chunk lenght in seconds */
    int audioChunk::getTimeLenght(){
       return size/bitrate;
    }

    /* initialization function for audioChunk_dNorm */
    audioChunk_dNorm::audioChunk_dNorm(){
       data=NULL;
       size=0;
       bitrate=0;
    }

    /* function to get back chunk lenght in seconds */
    int audioChunk_dNorm::getTimeLenght(){
       return size/bitrate;
    }

    /* function to normalize audioChunk into audioChunk_dNorm */
    void audioChunk_dNorm::fillAudioChunk(audioChunk* cnk){

       size=cnk->size;
       bitrate=cnk->bitrate;

       double min=cnk->data[0];
       double max=cnk->data[0];

       for(int i=0;isize;i++){
           if(*(cnk->data+i)>max) max=*(cnk->data+i);
           else if(*(cnk->data+i)data+i);
       }

       data=new double[size];

       for(int i=0;i/data[i]=cnk->data[i]+256*data[i+1];
           if(data[i]!=255) data[i]=2*((cnk->data[i])-(max-min)/2)/(max-min);
           else data[i]=0;
       }
       cout&lt;&lt;"bitrate "&lt;* inizialize audioChunk */
       audioChunk output;

       /* Check input times */
       if((start_time&lt;0)||(lenght&lt;0)) {
           cout&lt;&lt;"Input times should be positive";
           return output;
       }

       /* Start FFmpeg */
       av_register_all();

       /* Initialize the frame to read the data and verify memory allocation */
       AVFrame* frame = av_frame_alloc();
       if (!frame)
       {
           cout &lt;&lt; "Error allocating the frame" &lt;&lt; endl;
           return output;
       }

       /* Initialization of the Context, to open the file */
       AVFormatContext* formatContext = NULL;
       /* Opening the file, and check if it has opened */
       if (avformat_open_input(&amp;formatContext, path_name, NULL, NULL) != 0)
       {
           av_frame_free(&amp;frame);
           cout &lt;&lt; "Error opening the file" &lt;&lt; endl;
           return output;
       }

       /* Find the stream info, if not found, exit */
       if (avformat_find_stream_info(formatContext, NULL) &lt; 0)
       {
           av_frame_free(&amp;frame);
           avformat_close_input(&amp;formatContext);
           cout &lt;&lt; "Error finding the stream info" &lt;&lt; endl;
           return output;
       }

       /* Check inputs to verify time input */
       if(start_time>(formatContext->duration/1000000)){
           cout&lt;&lt; "Error, start_time is over file duration"&lt;* Chunk = number of samples to output */
       long long int chunk = ((formatContext->bit_rate)*lenght/8);
       /* Start = address of sample where start to read */
       long long int start = ((formatContext->bit_rate)*start_time/8);
       /* Tot_sampl = number of the samples in the file */
       long long int tot_sampl = (formatContext->bit_rate)*(formatContext->duration)/8000000;

       /* Set the lenght of chunk to avoid segfault and to read all the file */
       if (start+chunk>tot_sampl) {chunk = tot_sampl-start;}
       if (lenght==0) {start = 0; chunk = tot_sampl;}

       /* initialize the array to output */
       output.data = new unsigned char[chunk];
       output.bitrate = formatContext->bit_rate;
       output.size=chunk;

       av_dump_format(formatContext,0,NULL,0);
       cout&lt;* Find the audio Stream, if no audio stream are found, clean and exit */
       AVCodec* cdc = NULL;
       int streamIndex = av_find_best_stream(formatContext, AVMEDIA_TYPE_AUDIO, -1, -1, &amp;cdc, 0);
       if (streamIndex &lt; 0)
       {
           av_frame_free(&amp;frame);
           avformat_close_input(&amp;formatContext);
           cout &lt;&lt; "Could not find any audio stream in the file" &lt;&lt; endl;
           return output;
       }

       /* Open the audio stream to read data  in audioStream */
       AVStream* audioStream = formatContext->streams[streamIndex];

       /* Initialize the codec context */
       AVCodecContext* codecContext = audioStream->codec;
       codecContext->codec = cdc;
       /* Open the codec, and verify if it has opened */
       if (avcodec_open2(codecContext, codecContext->codec, NULL) != 0)
       {
           av_frame_free(&amp;frame);
           avformat_close_input(&amp;formatContext);
           cout &lt;&lt; "Couldn't open the context with the decoder" &lt;&lt; endl;
           return output;
       }

       /* Initialize buffer to store compressed packets */
       AVPacket readingPacket;
       av_init_packet(&amp;readingPacket);


       int j=0;
       int count = 0;

       while(av_read_frame(formatContext, &amp;readingPacket)==0){
           if((count+readingPacket.size)>start){
               if(readingPacket.stream_index == audioStream->index){

                   AVPacket decodingPacket = readingPacket;

                   // Audio packets can have multiple audio frames in a single packet
                   while (decodingPacket.size > 0){
                       // Try to decode the packet into a frame
                       // Some frames rely on multiple packets, so we have to make sure the frame is finished before
                       // we can use it
                       int gotFrame = 0;
                       int result = avcodec_decode_audio4(codecContext, frame, &amp;gotFrame, &amp;decodingPacket);

                       count += result;

                       if (result >= 0 &amp;&amp; gotFrame)
                       {
                           decodingPacket.size -= result;
                           decodingPacket.data += result;
                           int a;

                           for(int i=0;idata[0][i];

                               j++;
                               if(j>=chunk) break;
                           }

                           // We now have a fully decoded audio frame
                       }
                       else
                       {
                           decodingPacket.size = 0;
                           decodingPacket.data = NULL;
                       }
                       if(j>=chunk) break;
                   }
               }              
           }else count+=readingPacket.size;

           // To prevent memory leak, must free packet.
           av_free_packet(&amp;readingPacket);
           if(j>=chunk) break;
       }

       // Some codecs will cause frames to be buffered up in the decoding process. If the CODEC_CAP_DELAY flag
       // is set, there can be buffered up frames that need to be flushed, so we'll do that
       if (codecContext->codec->capabilities &amp; CODEC_CAP_DELAY)
       {
           av_init_packet(&amp;readingPacket);
           // Decode all the remaining frames in the buffer, until the end is reached
           int gotFrame = 0;
           int a;
           int result=avcodec_decode_audio4(codecContext, frame, &amp;gotFrame, &amp;readingPacket);
           while (result >= 0 &amp;&amp; gotFrame)
           {
               // We now have a fully decoded audio frame
               for(int i=0;idata[0][i];

                   j++;
                   if(j>=chunk) break;
               }
               if(j>=chunk) break;
           }
       }

       // Clean up!
       av_free(frame);
       avcodec_close(codecContext);
       avformat_close_input(&amp;formatContext);

       cout&lt;&lt;"Ended Reading, "&lt;code></fstream></iostream></cstdlib>

    Here is the dataReader.h

    /*
    * File:   dataReader.h
    * Author: davide
    *
    * Created on 27 luglio 2015, 11.11
    */

    #ifndef DATAREADER_H
    #define DATAREADER_H

    /* function that reads a file and outputs an array of samples
    * @ path_name = the path of the file to read
    * @ start_time = the position where to start the data reading, 0 = start
    *                the time is in seconds, it can hold to 10e-6 seconds
    * @ lenght = the lenght of the frame to extract the data,
    *            0 = read all the file (do not use with big files)
    *            if lenght > of file duration, it reads through the end of file.
    *            the time is in seconds, it can hold to 10e-6 seconds  
    */

    #include

    class audioChunk{
    public:
       uint8_t *data;
       unsigned int size;
       int bitrate;
       int getTimeLenght();
       audioChunk();
    };

    class audioChunk_dNorm{
    public:
       double* data;
       unsigned int size;
       int bitrate;
       int getTimeLenght();
       void fillAudioChunk(audioChunk* cnk);
       audioChunk_dNorm();
    };

    audioChunk readData(const char* path_name, const double start_time, const double lenght);

    #endif  /* DATAREADER_H */

    And finally there is the main.cpp of the application.

    /*
    * File:   main.cpp
    * Author: davide
    *
    * Created on 28 luglio 2015, 17.04
    */

    #include <cstdlib>
    #include "dataReader.h"
    #include "transforms.h"
    #include "tognuplot.h"
    #include <fstream>
    #include <iostream>

    using namespace std;

    /*
    *
    */
    int main(int argc, char** argv) {

       audioChunk *chunk1=new audioChunk;

       audioChunk_dNorm *normChunk1=new audioChunk_dNorm;

       *chunk1=readData("./audio/demo-unprocessed.wav",0,1);

       normChunk1->fillAudioChunk(chunk1);

       ofstream file1;
       file1.open("./file/2wave.txt", std::ofstream::trunc);
       if(file1.is_open()) {
           for(int i=0;isize;i++) {
               int a=chunk1->data[i];
               file1&lt;code></iostream></fstream></cstdlib>

    I can’t understand why the outputs goes like this. Is it possible that the decoder can’t convert the samples (pcm_16le, 16bits) into FFMPEG AVFrame.data, that stores the samples ad uint8_t ? And if it is it is there some way to make FFMPEG work for audio files that stores samples at more than 8 bits ?

    The file graph1-demo_good.jpg is how the samples should be, extracted with a working LIBSNDFILE application that I made.

    EDIT : Seems like the program can’t convert the decoded data, couples of little endian bytes stored in a couple of uint8_t unsigned char, into the destination format (that i set as unsigned char[]), because it stores the bits as little-endian 16 bytes. So the data into audioChunk.data is right, but I have to read it not as an unsigned char, but as a couple of little-endian bytes.