Recherche avancée

Médias (5)

Mot : - Tags -/open film making

Autres articles (107)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

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

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

Sur d’autres sites (11713)

  • Decoding a h.264 stream with MediaCodec, dequeueOutputBuffer always return -1

    20 septembre 2016, par bitto bitta

    I am trying to use the MediaCodec API for decoding live-stream screen capture from PC by ffmpeg.

    For Sender (PC ffmpeg)

    i use this command

    ffmpeg -re -f gdigrab -s 1920x1080 -threads 4 -i desktop -vcodec libx264 -pix_fmt yuv420p -tune zerolatency -profile:v baseline -flags global_header  -s 1280x720  -an -f rtp rtp://192.168.1.6:1234

    and output looks like this

    Output #0, rtp, to 'rtp://192.168.1.6:1234':
     Metadata:
       encoder         : Lavf56.15.104
       Stream #0:0: Video: h264 (libx264), yuv420p, 1280x720, q=-1--1, 29.97 fps, 90k tbn, 29.97 tbc
    Metadata:
     encoder         : Lavc56.14.100 libx264
    Stream mapping:
     Stream #0:0 -> #0:0 (bmp (native) -> h264 (libx264))
    SDP:
    v=0
    o=- 0 0 IN IP4 127.0.0.1
    s=No Name
    c=IN IP4 192.168.1.6
    t=0 0
    a=tool:libavformat 56.15.104
    m=video 1234 RTP/AVP 96
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LAH9kAUAW6EAAAPpAADqYI8YMkgA==,aMuDyyA=; profile-level-id=42C01F

    Press [q] to stop, [?] for help
    frame=   19 fps=0.0 q=17.0 size=     141kB time=00:00:00.63 bitrate=1826.0kbits/
    frame=   34 fps= 32 q=17.0 size=     164kB time=00:00:01.13 bitrate=1181.5kbits/
    frame=   50 fps= 32 q=18.0 size=     173kB time=00:00:01.66 bitrate= 850.9kbits/

    For Receiver (Android MediaCodec)

    I created activity with surface and implements SurfaceHolder.Callback

    In surfaceChanged

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
       Log.i("sss", "surfaceChanged");
       if( playerThread == null ) {
           playerThread = new PlayerThread(holder.getSurface());
           playerThread.start();
       }

    }

    For PlayerThread

    class PlayerThread extends Thread {

       MediaCodec decoder;
       Surface surface;

       public PlayerThread(Surface surface) {
           this.surface = surface;
       }

       @Override
       public void run() {
           running = true;
           try {
               MediaFormat format = MediaFormat.createVideoFormat("video/avc", 1280, 720);
               byte[] header = new byte[] {0,0,0,1};
               byte[] sps = Base64.decode("Z0LAH9kAUAW6EAAAPpAADqYI8YMkgA==", Base64.DEFAULT);
               byte[] pps = Base64.decode("aMuDyyA=", Base64.DEFAULT);

               byte[] header_sps = new byte[sps.length + header.length];
               System.arraycopy(header,0,header_sps,0,header.length);
               System.arraycopy(sps,0,header_sps,header.length, sps.length);

               byte[] header_pps = new byte[pps.length + header.length];
               System.arraycopy(header,0, header_pps, 0, header.length);
               System.arraycopy(pps, 0, header_pps, header.length, pps.length);

               format.setByteBuffer("csd-0", ByteBuffer.wrap(header_sps));
               format.setByteBuffer("csd-1", ByteBuffer.wrap(header_pps));
               format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 1280 * 720);
    //          format.setInteger("durationUs", 63446722);
    //          format.setByteBuffer("csd-2", ByteBuffer.wrap((hexStringToByteArray("42C01E"))));                      
    //          format.setInteger(MediaFormat.KEY_COLOR_FORMAT ,MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
               Log.i("sss", "Format = " + format);

               try {
                   decoder = MediaCodec.createDecoderByType("video/avc");
                   decoder.configure(format, surface, null, 0);
                   decoder.start();

               } catch (IOException ioEx) {
                   ioEx.printStackTrace();
               }

               DatagramSocket socket = new DatagramSocket(1234);
               byte[] bytes = new byte[4096];
               DatagramPacket packet = new DatagramPacket(bytes, bytes.length);

               byte[] data;

               ByteBuffer[] inputBuffers;
               ByteBuffer[] outputBuffers;

               ByteBuffer inputBuffer;
               ByteBuffer outputBuffer;

               MediaCodec.BufferInfo bufferInfo;

               bufferInfo = new MediaCodec.BufferInfo();
               int inputBufferIndex;
               int outputBufferIndex;
               byte[] outData;

               inputBuffers = decoder.getInputBuffers();
               outputBuffers = decoder.getOutputBuffers();

               int minusCount = 0;
               byte[] prevData = new byte[65535];
               List playLoads = new ArrayList<>();
               int playloadSize = 0;
               while (true) {
                   try {
                       socket.receive(packet);
                       data = new byte[packet.getLength()];
                       System.arraycopy(packet.getData(), packet.getOffset(), data, 0, packet.getLength());

                   inputBufferIndex = decoder.dequeueInputBuffer(-1);
                       Log.i("sss", "inputBufferIndex = " + inputBufferIndex);
                   if (inputBufferIndex >= 0)
                   {
                       inputBuffer = inputBuffers[inputBufferIndex];
                       inputBuffer.clear();

                       inputBuffer.put(data);


                       decoder.queueInputBuffer(inputBufferIndex, 0, data.length, 0, 0);
    //                  decoder.flush();
                   }

                   outputBufferIndex = decoder.dequeueOutputBuffer(bufferInfo, 10000);
                   Log.i("sss", "outputBufferIndex = " + outputBufferIndex);

                   while (outputBufferIndex >= 0)
                   {
                       outputBuffer = outputBuffers[outputBufferIndex];

                       outputBuffer.position(bufferInfo.offset);
                       outputBuffer.limit(bufferInfo.offset + bufferInfo.size);

                       outData = new byte[bufferInfo.size];
                       outputBuffer.get(outData);


                       decoder.releaseOutputBuffer(outputBufferIndex, false);
                       outputBufferIndex = decoder.dequeueOutputBuffer(bufferInfo, 0);

                   }

                   } catch (SocketTimeoutException e) {
                       Log.d("thread", "timeout");
                   }
               }
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
    }

    I think stream from ffmpeg is not a problem because i can open it from mxPlayer via sdp file.
    And if I pass this stream to local RTSP server (by VLC) then I use MediaPlayer to get RTSP stream, it works but quite slow.

    After I looked into the packet I realize that

    • first four bytes is header and sequence number
    • next four bytes is TimeStamp
    • next four bytes is source identifier

    So, I cut first 12 bytes out and combine packets with same TimeStamp. Then put it in buffer like this

    In while(true) after received packet

                   Log.i("sss", "Received = " + data.length + " bytes");
                   Log.i("sss","prev " + prevData.length + " bytes = " + getBytesStr(prevData));
                   Log.i("sss","data " + data.length + " bytes = " + getBytesStr(data));

                           if(data[4] == prevData[4] && data[5] == prevData[5] && data[6] == prevData[6] && data[7] == prevData[7]){
                               byte[] playload = new byte[prevData.length -12];
                               System.arraycopy(prevData,12,playload, 0, prevData.length-12);
                               playLoads.add(playload);
                               playloadSize += playload.length;
                               Log.i("sss", "Same timeStamp playload " + playload.length + " bytes = " + getBytesStr(playload));
                           } else {
                               if(playLoads.size() > 0){
                                   byte[] playload = new byte[prevData.length -12];
                                   System.arraycopy(prevData,12,playload, 0, prevData.length-12);
                                   playLoads.add(playload);
                                   playloadSize += playload.length;
                                   Log.i("sss", "last playload " + playload.length + " bytes = " + getBytesStr(playload));

                                   inputBufferIndex = decoder.dequeueInputBuffer(-1);
                                   if (inputBufferIndex >= 0){
                                       inputBuffer = inputBuffers[inputBufferIndex];
                                       inputBuffer.clear();
                                       byte[] allPlayload = new byte[playloadSize];
                                       int curLength = 0;
                                       for(byte[] playLoad:playLoads){
                                           System.arraycopy(playLoad,0,allPlayload, curLength, playLoad.length);
                                           curLength += playLoad.length;
                                       }
                                       Log.i("sss", "diff timeStamp AlllayLoad " + allPlayload.length + "bytes = " + getBytesStr(allPlayload));
                                       inputBuffer.put(allPlayload);

                                       decoder.queueInputBuffer(inputBufferIndex, 0, data.length, 0, 0);
                                       decoder.flush();
                                   }

                                   bufferInfo = new MediaCodec.BufferInfo();
                                   outputBufferIndex = decoder.dequeueOutputBuffer(bufferInfo, 10000);
                                   if(outputBufferIndex!= -1)
                                       Log.i("sss", "outputBufferIndex = " + outputBufferIndex);

                                   playLoads = new ArrayList<>();
                                   prevData = new byte[65535];
                                   playloadSize = 0;
                               }

                           }

                       prevData = data.clone();

    The outputBufferIndex still return -1

    If I change timeoutUS from 10000 to -1, it never go to next line

    I’ve searched for a week but still no luck T_T

    Why dequeueOutputBuffer always return -1 ?

    What is the problem of my code ?

    Could you properly optimize my code to work correctly ?

    Thanks for your help.

    Edit#1

    Thanks @mstorsjo guide me to Packetization and i found useful infomation

    How to process raw UDP packets so that they can be decoded by a decoder filter in a directshow source filter

    Then i edited my code below

    if((data[12] & 0x1f) == 28){
      if((data[13] & 0x80) == 0x80){ //found start bit
         inputBufferIndex = decoder.dequeueInputBuffer(-1);
         if (inputBufferIndex >= 0){
            inputBuffer = inputBuffers[inputBufferIndex];
            inputBuffer.clear();
            byte result = (byte)((bytes[12] & 0xe0) + (bytes[13] & 0x1f));
            inputBuffer.put(new byte[] {0,0,1});
            inputBuffer.put(result);
            inputBuffer.put(data,14, data.length-14);
         }

      } else if((data[13] &0x40) == 0x40){ //found stop bit
         inputBuffer.put(data, 14, data.length -14);
         decoder.queueInputBuffer(inputBufferIndex, 0, data.length, 0, 0);
         bufferInfo = new MediaCodec.BufferInfo();
         outputBufferIndex = decoder.dequeueOutputBuffer(bufferInfo, 10000);

         switch(outputBufferIndex)
         {
            case MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED:
               outputBuffers = decoder.getOutputBuffers();
               Log.w("sss", "Output Buffers Changed");
               break;
            case MediaCodec.INFO_OUTPUT_FORMAT_CHANGED:
               Log.w("sss", "Output Format Changed");
               MediaFormat newFormat = decoder.getOutputFormat();
               Log.i("sss","New format : " + newFormat);

               break;
            case MediaCodec.INFO_TRY_AGAIN_LATER:
               Log.w("sss", "Try Again Later");
               break;
            default:
               outputBuffer = outputBuffers[outputBufferIndex];
               outputBuffer.position(bufferInfo.offset);
               outputBuffer.limit(bufferInfo.offset + bufferInfo.size);
               decoder.releaseOutputBuffer(outputBufferIndex, true);

         }
      } else {
         inputBuffer.put(data, 14, data.length -14);
      }
    }

    Now i can see some picture but most of screen is gray

    What should i do next ??

    Thank you.

  • FFMPEG output (Images > Video) is unplayable

    23 décembre 2014, par jgads

    I’m using FFMPEG to make a video slideshow from a group of images on Android. The process completes successfully and the output file is the correct/expected size (or the same as what is reported in FFMPEG’s ’progress’), but the video does not play on any Android video player (MXplayer, VLC, stock). The video players show a perpetual loading circle and never actually launch. MXplayer can see the file and generate a thumbnail but not actually play it. Here is the command :

    ffmpeg -f image2 -re -r 1 -i
    /storage/emulated/0/Pictures/phototest/%d.jpg -vcodec libx264 -f mp4
    -r 24 -preset : ultrafast -an -threads 4 -b 4000k -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -y -pix_fmt yuv420p /storage/emulated/0/Pictures/phototest/result1.mp4

    Here’s the output via Android Logcat :

    12-23 12:59:49.890  12665-12665/com.company.example I/FFmpeg﹕ Loading FFmpeg for armv7-neon CPU
    12-23 12:59:50.210  12665-12665/com.company.example E/FFMPEG﹕ Success loading ffmpeg
    12-23 12:59:54.420  12665-12665/com.company.example E/FFMPEG﹕ Started.
    12-23 12:59:54.445  12665-12799/com.company.example D/FFmpeg﹕ Running publishing updates method
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress: ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   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=
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavutil      54.  7.100 / 54.  7.100
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavcodec     56.  1.100 / 56.  1.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavformat    56.  4.101 / 56.  4.101
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavdevice    56.  0.100 / 56.  0.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavfilter     5.  1.100 /  5.  1.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libswscale      3.  0.100 /  3.  0.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libswresample   1.  1.100 /  1.  1.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libpostproc    53.  0.100 / 53.  0.100
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress: Input #0, image2, from '/storage/emulated/0/Pictures/phototest/%d.jpg':
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress:   Duration: 00:00:28.00, start: 0.000000, bitrate: N/A
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress:     Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg), 2528x1856 [SAR 1:1 DAR 79:58], 1 fps, 1 tbr, 1 tbn, 1 tbc
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress: Please use -b:a or -b:v, -b is ambiguous
    12-23 12:59:54.665  12665-12665/com.company.example E/FFMPEG﹕ Progress: [swscaler @ 0x2b3f7990] deprecated pixel format used, make sure you did set range correctly
    12-23 12:59:54.670  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] using SAR=1/1
    12-23 12:59:54.685  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] using cpu capabilities: none!
    12-23 12:59:54.755  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] profile Constrained Baseline, level 5.0
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] 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=0 trellis=2 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=300 keyint_min=24 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: Output #0, mp4, to '/storage/emulated/0/Pictures/phototest/result1.mp4':
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:   Metadata:
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:     encoder         : Lavf56.4.101
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:     Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 2528x1856 [SAR 1:1 DAR 79:58], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:     Metadata:
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:       encoder         : Lavc56.1.100 libx264
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: Stream mapping:
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:   Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: Press [q] to stop, [?] for help
    12-23 13:00:03.905  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=   49 fps= 11 q=17.0 size=     840kB time=00:00:01.83 bitrate=3752.6kbits/s dup=46 drop=0
    12-23 13:00:11.185  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=   73 fps=8.0 q=17.0 size=    1397kB time=00:00:02.83 bitrate=4039.0kbits/s dup=69 drop=0
    12-23 13:00:17.615  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=   97 fps=5.9 q=17.0 size=    1931kB time=00:00:03.83 bitrate=4126.8kbits/s dup=92 drop=0
    12-23 13:00:22.545  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  121 fps=5.3 q=17.0 size=    2496kB time=00:00:04.83 bitrate=4229.6kbits/s dup=115 drop=0
    12-23 13:00:27.630  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  145 fps=5.2 q=17.0 size=    3089kB time=00:00:05.83 bitrate=4338.5kbits/s dup=138 drop=0
    12-23 13:00:33.005  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  169 fps=5.1 q=17.0 size=    3702kB time=00:00:06.83 bitrate=4437.9kbits/s dup=161 drop=0
    12-23 13:00:37.840  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  193 fps=5.0 q=18.0 size=    4316kB time=00:00:07.83 bitrate=4514.1kbits/s dup=184 drop=0
    12-23 13:00:43.345  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  217 fps=5.0 q=18.0 size=    4848kB time=00:00:08.83 bitrate=4495.6kbits/s dup=207 drop=0
    12-23 13:00:48.155  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  241 fps=5.0 q=18.0 size=    5304kB time=00:00:09.83 bitrate=4418.5kbits/s dup=230 drop=0
    12-23 13:00:52.930  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  265 fps=5.0 q=19.0 size=    5874kB time=00:00:10.83 bitrate=4441.8kbits/s dup=253 drop=0
    12-23 13:00:57.210  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  289 fps=5.0 q=18.0 size=    6205kB time=00:00:11.83 bitrate=4295.9kbits/s dup=276 drop=0
    12-23 13:01:01.415  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  313 fps=5.0 q=18.0 size=    6747kB time=00:00:12.83 bitrate=4307.0kbits/s dup=299 drop=0
    12-23 13:01:05.315  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  337 fps=5.1 q=18.0 size=    7126kB time=00:00:13.83 bitrate=4220.0kbits/s dup=322 drop=0
    12-23 13:01:09.935  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  361 fps=5.1 q=17.0 size=    7522kB time=00:00:14.83 bitrate=4153.9kbits/s dup=345 drop=0
    12-23 13:01:14.755  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  385 fps=5.1 q=18.0 size=    8072kB time=00:00:15.83 bitrate=4176.2kbits/s dup=368 drop=0
    12-23 13:01:19.505  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  409 fps=5.1 q=18.0 size=    8618kB time=00:00:16.83 bitrate=4193.9kbits/s dup=391 drop=0
    12-23 13:01:23.630  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  433 fps=5.1 q=17.0 size=    9074kB time=00:00:17.83 bitrate=4168.4kbits/s dup=414 drop=0
    12-23 13:01:27.580  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  457 fps=5.1 q=17.0 size=    9423kB time=00:00:18.83 bitrate=4098.7kbits/s dup=437 drop=0
    12-23 13:01:32.210  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  481 fps=5.2 q=17.0 size=    9908kB time=00:00:19.83 bitrate=4092.4kbits/s dup=460 drop=0
    12-23 13:01:36.140  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  505 fps=5.2 q=16.0 size=   10238kB time=00:00:20.83 bitrate=4025.6kbits/s dup=483 drop=0
    12-23 13:01:41.165  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  529 fps=5.2 q=16.0 size=   10758kB time=00:00:21.83 bitrate=4036.4kbits/s dup=506 drop=0
    12-23 13:01:46.065  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  553 fps=5.2 q=16.0 size=   11214kB time=00:00:22.83 bitrate=4023.2kbits/s dup=529 drop=0
    12-23 13:01:51.290  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  577 fps=5.2 q=16.0 size=   11836kB time=00:00:23.83 bitrate=4068.4kbits/s dup=552 drop=0
    12-23 13:01:57.560  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  601 fps=5.2 q=17.0 size=   12537kB time=00:00:24.83 bitrate=4135.6kbits/s dup=575 drop=0
    12-23 13:02:02.735  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  625 fps=5.1 q=18.0 size=   13864kB time=00:00:25.83 bitrate=4396.6kbits/s dup=598 drop=0
    12-23 13:02:06.810  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  649 fps=5.1 q=18.0 size=   14322kB time=00:00:26.83 bitrate=4372.3kbits/s dup=621 drop=0
    12-23 13:02:06.815  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  649 fps=4.9 q=18.0 size=   14322kB time=00:00:26.83 bitrate=4372.3kbits/s dup=621 drop=0
    12-23 13:02:07.355  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  649 fps=4.9 q=-1.0 Lsize=   14349kB time=00:00:27.04 bitrate=4346.9kbits/s dup=621 drop=0
    12-23 13:02:07.355  12665-12665/com.company.example E/FFMPEG﹕ Progress: video:14345kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.024813%
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] frame I:3     Avg QP:21.67  size:383361
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] frame P:646   Avg QP:18.87  size: 20958
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] mb I  I16..4: 100.0%  0.0%  0.0%
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] mb P  I16..4:  4.4%  0.0%  0.0%  P16..4: 19.5%  0.0%  0.0%  0.0%  0.0%    skip:76.0%
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] final ratefactor: 26.82
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] coded y,uvDC,uvAC intra: 42.8% 45.6% 9.2% inter: 3.4% 16.7% 0.1%
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] i16 v,h,dc,p: 36% 24% 22% 19%
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] i8c dc,h,v,p: 51% 22% 19%  7%
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] kb/s:4345.62
    12-23 13:02:07.400  12665-12665/com.company.example E/FFMPEG﹕ Success: 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, image2, from '/storage/emulated/0/Pictures/phototest/%d.jpg':
    Duration: 00:00:28.00, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg), 2528x1856 [SAR 1:1 DAR 79:58], 1 fps, 1 tbr, 1 tbn, 1 tbc
    Please use -b:a or -b:v, -b is ambiguous
    [swscaler @ 0x2b3f7990] deprecated pixel format used, make sure you did set range correctly
    [libx264 @ 0x2b4012e0] using SAR=1/1
    [libx264 @ 0x2b4012e0] using cpu capabilities: none!
    [libx264 @ 0x2b4012e0] profile Constrained Baseline, level 5.0
    [libx264 @ 0x2b4012e0] 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=0 trellis=2 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=300 keyint_min=24 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    Output #0, mp4, to '/storage/emulated/0/Pictures/phototest/result1.mp4':
    Metadata:
    encoder         : Lavf56.4.101
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 2528x1856 [SAR 1:1 DAR 79:58], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc
    Metadata:
    encoder         : Lavc56.1.100 libx264
    Stream mapping:
    Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    frame=   49 fps= 11 q=17.0 size=     840kB time=00:00:01.83 bitrate=3752.6kbits/s dup=46 drop=0
    frame=   73 fps=8.0 q=17.0 size=    1397kB time=00:00:02.83 bitrate=4039.0kbits/s dup=69 drop=0
    frame=   97 fps=5.9 q=17.0 size=    1931kB time=00:00:03.83 bitrate=4126.8kbits/s dup=92 drop=0
    frame=  121 fps=5.3 q=17.0 size=    2496kB time=00:00:04.83 bitrate=4229.6kbits/s dup=115 drop=0
    frame=  145 fps=5.2 q=17.0 size=    3089kB time=00:00:05.83 bitrate=4338.5kbits/s dup=138 drop=0
    frame=  169 fps=5.1 q=17.0 size=    3702kB time=00:00:06.83 bitrate=4437.9kbits/s dup=161 drop=0
    frame=  193 fps=5.0 q=18.0 size=    4316kB time=00:00:07.83 bitrate=4514.1kbits/s dup=184 drop=0
    frame=  217 fps=5.0 q=18.0 size=    4848kB time=00:00:08.83 bitrate=4495.6kbits/s dup=207 drop=0
    frame=  241 fps=5.0 q=18.0 size=    5304kB time=00:00:09.83 bitrate=4418.5kbits/s dup=230 drop=0
    frame=  265 fps=5.0 q=19.0 size=    5874kB time=00:00:10.83 bitrate=4441.8kbits/s dup=253 drop=0
    frame=  28
    12-23 13:02:07.430  12665-12665/com.company.example E/FFMPEG﹕ Finished.

    EDIT : Note that although it appears to run ffmpeg twice here, the output file is the correct size which seems to mean that the file isn’t getting overwritten with a corrupt version, so we can probably just assume there’s a bug with Logcat (right ?)

    EDIT 2 : Trying the same command on the PC works flawlessly. Playing back this video works fine on Android.

  • Evolution #3358 (Nouveau) : Création d’un pipeline "modifier_session"

    3 décembre 2014, par Peet du

    L’idée serait de pourvoir ajouter des variables de sessions sans avoir a passer par les squelettes
    Exemple :

    function monprefix_modifier_session($flux) {
       $flux .= session_set('mapassion', 'éléphants');
       return $flux;
    }