Recherche avancée

Médias (91)

Autres articles (96)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

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

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

Sur d’autres sites (5952)

  • Revision 181949948e : Add constrained-copy partition to speed features. Copy up to a certain bsize, o

    5 avril 2014, par Marco Paniconi

    Changed Paths :
     Modify /vp9/encoder/vp9_encodeframe.c


     Modify /vp9/encoder/vp9_speed_features.c


     Modify /vp9/encoder/vp9_speed_features.h



    Add constrained-copy partition to speed features.

    Copy up to a certain bsize, otherwise set to a fixed bsize.
    This helsp to reduce artifact near moving boundary caused by full partition
    copy without checking motion of super-block.
    This artifact can occur at speeds 3,4 in real-time mode.
    Issue : https://code.google.com/p/webm/issues/detail?id=738.

    Change-Id : I05812521fd38816a467f72eb6a951cae4c227931

  • Encoding images into a movie file

    5 avril 2014, par RuAware

    I am trying to save jpgs into a movie, I have tried jcodec and alothough my s3 plays it fine other devices do not. including vlc and windows media

    I have just spent most of the day playing with MediaCodec, although the SDK is so high, it will help people with jelly bean and above. But I can not work out how to get the Files to the encoder and then write the file.

    Ideally I wont to support down to SDK 9/8

    Has anyone got any code they can share, either to get MediaCodec to work or another option. If you say ffmpeg, I'd love to but my jin knowledge is non existent and I will need a very good guide.

    Code for MediaCodec so far

    public class EncodeAndMux extends AsyncTask {
       private static int bitRate = 2000000;
       private static int MAX_INPUT = 100000;
       private static String mimeType = "video/avc";

       private int frameRate = 15;    
       private int colorFormat;
       private int stride = 1;
       private int sliceHeight = 2;        

       private MediaCodec encoder = null;
       private MediaFormat inputFormat;
       private MediaCodecInfo codecInfo = null;
       private MediaMuxer muxer;
       private boolean mMuxerStarted = false;
       private int mTrackIndex = 0;  
       private long presentationTime = 0;
       private Paint bmpPaint;

       private static int WAITTIME = 10000;
       private static String TAG = "ENCODE";

       private ArrayList<string> mFilePaths;
       private String mPath;

       private EncodeListener mListener;
       private int width = 320;
       private int height = 240;
       private double mSpeed = 1;

       public EncodeAndMux(ArrayList<string> filePaths, String savePath) {
           mFilePaths = filePaths;
           mPath = savePath;  

           // Create paint to draw BMP
           bmpPaint = new Paint();
           bmpPaint.setAntiAlias(true);
           bmpPaint.setFilterBitmap(true);
           bmpPaint.setDither(true);
       }

       public void setListner(EncodeListener listener) {
           mListener = listener;
       }

       // set the speed, how many frames a second
       public void setSpead(int speed) {
           mSpeed = speed;
       }

       public double getSpeed() {
           return mSpeed;
       }

       private long computePresentationTime(int frameIndex) {
           final long ONE_SECOND = 1000000;
           return (long) (frameIndex * (ONE_SECOND / mSpeed));
       }

       public interface EncodeListener {
           public void finished();
           public void errored();
       }

       @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
       @Override
       protected Boolean doInBackground(Integer... params) {

           try {
               muxer = new MediaMuxer(mPath, OutputFormat.MUXER_OUTPUT_MPEG_4);
           } catch (Exception e){
               e.printStackTrace();
           }

           // Find a code that supports the mime type
           int numCodecs = MediaCodecList.getCodecCount();
           for (int i = 0; i &lt; numCodecs &amp;&amp; codecInfo == null; i++) {
               MediaCodecInfo info = MediaCodecList.getCodecInfoAt(i);
               if (!info.isEncoder()) {
                   continue;
               }
               String[] types = info.getSupportedTypes();
               boolean found = false;

               for (int j = 0; j &lt; types.length &amp;&amp; !found; j++) {
                   if (types[j].equals(mimeType))
                       found = true;
               }

               if (!found)
                   continue;
               codecInfo = info;
           }


            for (int i = 0; i &lt; MediaCodecList.getCodecCount(); i++) {
                    MediaCodecInfo info = MediaCodecList.getCodecInfoAt(i);
                    if (!info.isEncoder()) {
                        continue;
                    }

                    String[] types = info.getSupportedTypes();
                    for (int j = 0; j &lt; types.length; ++j) {
                        if (types[j] != mimeType)
                            continue;
                        MediaCodecInfo.CodecCapabilities caps = info.getCapabilitiesForType(types[j]);
                        for (int k = 0; k &lt; caps.profileLevels.length; k++) {
                            if (caps.profileLevels[k].profile == MediaCodecInfo.CodecProfileLevel.AVCProfileHigh &amp;&amp; caps.profileLevels[k].level == MediaCodecInfo.CodecProfileLevel.AVCLevel4) {
                                codecInfo = info;
                            }
                        }
                    }
            }

           Log.d(TAG, "Found " + codecInfo.getName() + " supporting " + mimeType);

           MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mimeType);
           for (int i = 0; i &lt; capabilities.colorFormats.length &amp;&amp; colorFormat == 0; i++) {
               int format = capabilities.colorFormats[i];
               switch (format) {
                   case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar:
                   case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedPlanar:
                   case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar:
                   case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedSemiPlanar:
                   case MediaCodecInfo.CodecCapabilities.COLOR_TI_FormatYUV420PackedSemiPlanar:
                   colorFormat = format;
                   break;
               }
           }
           Log.d(TAG, "Using color format " + colorFormat);

           // Determine width, height and slice sizes
           if (codecInfo.getName().equals("OMX.TI.DUCATI1.VIDEO.H264E")) {
               // This codec doesn&#39;t support a width not a multiple of 16,
               // so round down.
               width &amp;= ~15;
           }

           stride = width;
           sliceHeight = height;

           if (codecInfo.getName().startsWith("OMX.Nvidia.")) {
               stride = (stride + 15) / 16 * 16;
               sliceHeight = (sliceHeight + 15) / 16 * 16;
           }

           inputFormat = MediaFormat.createVideoFormat(mimeType, width, height);
           inputFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitRate);
           inputFormat.setInteger(MediaFormat.KEY_FRAME_RATE, frameRate);
           inputFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat);
           inputFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
    //          inputFormat.setInteger("stride", stride);
    //          inputFormat.setInteger("slice-height", sliceHeight);
           inputFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, MAX_INPUT);

           encoder = MediaCodec.createByCodecName(codecInfo.getName());
           encoder.configure(inputFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
           encoder.start();

           ByteBuffer[] inputBuffers = encoder.getInputBuffers();
           ByteBuffer[] outputBuffers = encoder.getOutputBuffers();

           int inputBufferIndex= -1, outputBufferIndex= -1;
           BufferInfo info = new BufferInfo();
           for (int i = 0; i &lt; mFilePaths.size(); i++) {

               // use decode sample to calculate inSample size and then resize
               Bitmap bitmapIn = Images.decodeSampledBitmapFromPath(mFilePaths.get(i), width, height);  

               // Create blank bitmap
               Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);                  

               // Center scaled image
               Canvas canvas = new Canvas(bitmap);                
               canvas.drawBitmap(bitmapIn,(bitmap.getWidth()/2)-(bitmapIn.getWidth()/2),(bitmap.getHeight()/2)-(bitmapIn.getHeight()/2), bmpPaint);

               Log.d(TAG, "Bitmap width: " + bitmapIn.getWidth() + " height: " + bitmapIn.getHeight() + " WIDTH: " + width + " HEIGHT: " + height);
               byte[] dat = getNV12(width, height, bitmap);
               bitmap.recycle();

               // Exception occurred on this below line in Emulator, LINE No. 182//**
               inputBufferIndex = encoder.dequeueInputBuffer(WAITTIME);
               Log.i("DAT", "Size= "+dat.length);

               if(inputBufferIndex >= 0){
                   int samplesiz= dat.length;
                   inputBuffers[inputBufferIndex].put(dat);
                   presentationTime = computePresentationTime(i);
                   if (i == mFilePaths.size()) {
                       encoder.queueInputBuffer(inputBufferIndex, 0, samplesiz, presentationTime, MediaCodec.BUFFER_FLAG_END_OF_STREAM);
                       Log.i(TAG, "Last Frame");
                   } else {
                       encoder.queueInputBuffer(inputBufferIndex, 0, samplesiz, presentationTime, 0);
                   }

                   while(true) {
                      outputBufferIndex = encoder.dequeueOutputBuffer(info, WAITTIME);
                      Log.i("BATA", "outputBufferIndex="+outputBufferIndex);
                      if (outputBufferIndex >= 0) {
                          ByteBuffer encodedData = outputBuffers[outputBufferIndex];
                          if (encodedData == null) {
                              throw new RuntimeException("encoderOutputBuffer " + outputBufferIndex +
                                      " was null");
                          }

                          if ((info.flags &amp; MediaCodec.BUFFER_FLAG_CODEC_CONFIG) != 0) {
                              // The codec config data was pulled out and fed to the muxer when we got
                              // the INFO_OUTPUT_FORMAT_CHANGED status.  Ignore it.
                              Log.d(TAG, "ignoring BUFFER_FLAG_CODEC_CONFIG");
                              info.size = 0;
                          }

                          if (info.size != 0) {
                              if (!mMuxerStarted) {
                                  throw new RuntimeException("muxer hasn&#39;t started");
                              }

                              // adjust the ByteBuffer values to match BufferInfo (not needed?)
                              encodedData.position(info.offset);
                              encodedData.limit(info.offset + info.size);

                              muxer.writeSampleData(mTrackIndex, encodedData, info);
                              Log.d(TAG, "sent " + info.size + " bytes to muxer");
                          }

                          encoder.releaseOutputBuffer(outputBufferIndex, false);

                          inputBuffers[inputBufferIndex].clear();
                          outputBuffers[outputBufferIndex].clear();

                          if ((info.flags &amp; MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
                              break;      // out of while
                          }

                      } else if (outputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
                          // Subsequent data will conform to new format.
                          MediaFormat opmediaformat = encoder.getOutputFormat();
                          if (!mMuxerStarted) {
                              mTrackIndex = muxer.addTrack(opmediaformat);
                              muxer.start();
                              mMuxerStarted = true;
                          }
                          Log.i(TAG, "op_buf_format_changed: " + opmediaformat);
                      } else if(outputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
                          outputBuffers = encoder.getOutputBuffers();
                          Log.d(TAG, "Output Buffer changed " + outputBuffers);
                      } else if(outputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
                          // No Data, break out
                          break;
                      } else {
                          // Unexpected State, ignore it
                          Log.d(TAG, "Unexpected State " + outputBufferIndex);
                      }
                   }

               }    
           }

           if (encoder != null) {
               encoder.flush();
               encoder.stop();
               encoder.release();
               encoder = null;
           }

           if (muxer != null) {
               muxer.stop();
               muxer.release();
               muxer = null;
           }

           return true;

       };

       @Override
       protected void onPostExecute(Boolean result) {
           if (result) {
               if (mListener != null)
                   mListener.finished();
           } else {
               if (mListener != null)
                   mListener.errored();
           }
           super.onPostExecute(result);
       }



       byte [] getNV12(int inputWidth, int inputHeight, Bitmap scaled) {
           int [] argb = new int[inputWidth * inputHeight];
           scaled.getPixels(argb, 0, inputWidth, 0, 0, inputWidth, inputHeight);
           byte [] yuv = new byte[inputWidth*inputHeight*3/2];
           encodeYUV420SP(yuv, argb, inputWidth, inputHeight);
           scaled.recycle();
           return yuv;
       }


       void encodeYUV420SP(byte[] yuv420sp, int[] argb, int width, int height) {
           final int frameSize = width * height;
           int yIndex = 0;
           int uvIndex = frameSize;
           int a, R, G, B, Y, U, V;
           int index = 0;
           for (int j = 0; j &lt; height; j++) {
               for (int i = 0; i &lt; width; i++) {

                   a = (argb[index] &amp; 0xff000000) >> 24; // a is not used obviously
                   R = (argb[index] &amp; 0xff0000) >> 16;
                   G = (argb[index] &amp; 0xff00) >> 8;
                   B = (argb[index] &amp; 0xff) >> 0;

                   // well known RGB to YVU algorithm
                   Y = ( (  66 * R + 129 * G +  25 * B + 128) >> 8) +  16;
                   V = ( ( -38 * R -  74 * G + 112 * B + 128) >> 8) + 128;
                   U = ( ( 112 * R -  94 * G -  18 * B + 128) >> 8) + 128;

                   yuv420sp[yIndex++] = (byte) ((Y &lt; 0) ? 0 : ((Y > 255) ? 255 : Y));
                   if (j % 2 == 0 &amp;&amp; index % 2 == 0) {
                       yuv420sp[uvIndex++] = (byte)((V&lt;0) ? 0 : ((V > 255) ? 255 : V));
                       yuv420sp[uvIndex++] = (byte)((U&lt;0) ? 0 : ((U > 255) ? 255 : U));
                   }

                   index ++;
               }
           }
       }
    }
    </string></string>

    This has now been tested on 4 of my devices and works fine, is there are way to

    1/ Calculate the MAX_INPUT (to high and on the N7 II it crashes, I Don't want that happening once released)
    2/ Offer an api 16 solution ?
    3/ Do I need stride and stride height ?

    Thanks

  • Compress video with ffmpeg4android library

    30 mars 2015, par Huy Tower

    I tried to follow ffmpeg4android library, and I get the problem when compressing the video, as the Log image below.

    I use intent to transfer to Compressing Media class,

    Intent intent = new Intent(this, CompressingMedia.class);
    intent.putExtra("file_path", mLlItems.get(0).getPath());
    startActivity(intent);

    This is the class was transfered to :

    public class CompressingMedia extends BaseWizard {

    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       Intent intent = getIntent();

       Log.d(Prefs.TAG, "path " + intent.getExtras().getString("file_path"));
       // /storage/emulated/0/DCIM/Camera/VID_20140312_090612.mp4

       String command = "ffmpeg -y -i " + intent.getExtras().getString("file_path") +
               " -strict experimental -s 320x240 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/out.mp4";

       // if you want to change the default work location (/sdcard/videokit/) use the uncomment the below method.
       // It must be defined before calling the copyLicenseAndDemoFilesFromAssetsToSDIfNeeded method,
       // in order for this method to copy the assets to the correct location.
               //      setWorkingFolder("/sdcard/videokit/");

       // this will copy the license file and the demo video file.
       // to the videokit work folder location.
       // without the license file the library will not work.
       copyLicenseAndDemoFilesFromAssetsToSDIfNeeded();

       commandStr = command;
       setCommand(commandStr);

       runTranscoing();
       }
    }

    Although I received the notification Transcoding Successfully, but it looks like the capacity of file after compressing is always be 0. (the log in the bottom of images)

    I don’t know the result as image below is good or not, I can not get the expected result - The video was compressed totally successfully.

    Someone know why after compressing the file is always be 0, please tell me. Thanks.

    This is the Log Cat :

    03-13 14:49:45.655 : I/ActivityManager(6065) : Timeline :
    Activity_launch_request id:app.cloudstringers time:38212359

    03-13 14:49:45.665 : V/Home(6065) : Global ID is 000400010007 ;Sell is 3

    03-13 14:49:45.770 : D/ffmpeg4android(6065) : path
    /storage/emulated/0/videokit/out.mp4

    03-13 14:49:45.770 : I/ffmpeg4android(6065) : workingFolderPath :
    /sdcard/videokit/

    03-13 14:49:45.775 : D/ffmpeg4android(6065) : Working directory exists,
    not coping assests (license file and demo videos)

    03-13 14:49:45.785 : D/ffmpeg4android(6065) : output directory exists.

    03-13 14:49:45.785 : I/ffmpeg4android(6065) : Command is set

    03-13 14:49:45.785 : I/ffmpeg4android(6065) : set
    remoteNotificationIconId : 0

    03-13 14:49:45.785 : D/ffmpeg4android(6065) : Client Cannot unbind -
    service not bound

    03-13 14:49:45.785 : D/ffmpeg4android(6065) : Client stopService()

    03-13 14:49:45.790 : W/ContextImpl(6065) : Implicit intents with
    startService are not safe : Intent
    act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge

    android.content.ContextWrapper.stopService:499
    com.netcompss.ffmpeg4android_client.BaseWizard.stopService:451
    com.netcompss.ffmpeg4android_client.BaseWizard.runTranscoing:285

    03-13 14:49:45.795 : I/ffmpeg4android(6065) :
     !!!!!!!!!!!!!!!!!!services.size() : 1

    03-13 14:49:45.795 : I/ffmpeg4android(6065) : putting Base categoty

    03-13 14:49:45.810 : D/ffmpeg4android(6065) : started :
    com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge

    03-13 14:49:45.810 : D/ffmpeg4android(6065) : Client startService()

    03-13 14:49:45.810 : D/ffmpeg4android(6065) : bindService() called

    03-13 14:49:45.815 : W/ContextImpl(6065) : Implicit intents with
    startService are not safe : Intent
    act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge

    android.content.ContextWrapper.bindService:517
    com.netcompss.ffmpeg4android_client.BaseWizard.bindService:462
    com.netcompss.ffmpeg4android_client.BaseWizard.runTranscoing:288

    03-13 14:49:45.820 : D/ffmpeg4android(6065) : Client bindService()

    03-13 14:49:45.935 : I/ffmpeg4android(6616) : =======service onCreate() :
    Stopping forground (to overcome 2.3.x bug)

    03-13 14:49:45.935 : I/ffmpeg4android(6616) : =======service
    onBind()=======

    03-13 14:49:45.940 : I/ffmpeg4android(6616) : ===onStartCommand called

    03-13 14:49:45.940 : I/ffmpeg4android(6616) : ===onStartCommand cat :
    Base

    03-13 14:49:45.940 : D/ffmpeg4android(6616) : onStartCommand,
    START_STICKY, base Command

    03-13 14:49:45.955 : I/ffmpeg4android(6616) : get
    remoteNotificationIconId : 0

    03-13 14:49:45.955 : I/ffmpeg4android(6616) : notifIcon is set

    03-13 14:49:45.955 : I/ffmpeg4android(6616) : Start RemoteService with
    notification id : 5326

    03-13 14:49:45.965 : I/ffmpeg4android(6616) : Run called.

    03-13 14:49:45.965 : D/ffmpeg4android(6616) : Sleeping, waiting for
    command

    03-13 14:49:45.970 : D/ffmpeg4android(6065) : Client
    onServiceConnected()

    03-13 14:49:45.970 : I/ffmpeg4android(6065) : invokeService called

    03-13 14:49:45.970 : I/Videokit(6065) : licenseCheck in path :
    /sdcard/videokit

    03-13 14:49:45.970 : I/Videokit(6065) : isLicExistsComplex...

    03-13 14:49:45.970 : I/Videokit(6065) : trying to open
    /sdcard/videokit/ffmpeglicense.lic

    03-13 14:49:45.970 : I/Videokit(6065) : license file found...

    03-13 14:49:45.970 : I/Videokit(6065) : time decoded : 1394535283

    03-13 14:49:45.970 : I/Videokit(6065) : timeStrDec 1394535283 is a valid
    number.

    03-13 14:49:45.970 : I/Videokit(6065) : time diff : 161702

    03-13 14:49:45.970 : I/Videokit(6065) : You used 1 of your 15 trial
    days.

    03-13 14:49:45.970 : I/ffmpeg4android(6065) : setting remote
    notification info

    03-13 14:49:45.970 : D/ffmpeg4android(6616) : command items num : 21

    03-13 14:49:45.970 : D/ffmpeg4android(6616) : command : ffmpeg -y -i
    /storage/emulated/0/videokit/out.mp4 -strict experimental -s 320x240
    -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/out.mp4

    03-13 14:49:45.970 : D/ffmpeg4android(6616) : workingFolder from remote :
    /sdcard/videokit

    03-13 14:49:45.970 : D/ffmpeg4android(6065) : deleteing :
    /sdcard/videokit/vk.log isdeleted : true

    03-13 14:49:45.975 : D/ffmpeg4android(6065) : deleteing :
    /sdcard/videokit/ffmpeg4android.log isdeleted : false

    03-13 14:49:45.975 : D/ffmpeg4android(6065) : deleteing :
    /sdcard/videokit/videokit.log isdeleted : true

    03-13 14:49:45.980 : D/ffmpeg4android(6065) : Client invokeService()

    03-13 14:49:45.980 : D/ffmpeg4android(6065) : Acquire wake lock

    03-13 14:49:46.265 : D/ffmpeg4android(6616) : Sleeping, waiting for
    command

    03-13 14:49:46.295 : D/ffmpeg4android(6065) : TranscodeBackground
    doInBackground started

    03-13 14:49:46.295 : I/ffmpeg4android(6616) : =======remote service
    runTranscoding ======

    03-13 14:49:46.340 : V/HomeAsync(6065) : TOTAL_SPACE is
    1 ;AVAILABLE_SPACE is 0.451

    03-13 14:49:46.345 : I/ActivityManager(6065) : Timeline : Activity_idle
    id : android.os.BinderProxy@423deed8 time:38213045

    03-13 14:49:46.345 : I/ActivityManager(6065) : Timeline : Activity_idle
    id : android.os.BinderProxy@420323a0 time:38213045

    03-13 14:49:46.565 : D/dalvikvm(6616) : Trying to load lib
    /data/app-lib/app.cloudstringers-2/libvideokit.so 0x41b285f0

    03-13 14:49:46.570 : D/dalvikvm(6616) : Added shared lib
    /data/app-lib/app.cloudstringers-2/libvideokit.so 0x41b285f0

    03-13 14:49:46.570 : I/Videokit(6616) : Loading native library compiled
    at 21:59:53 Oct 23 2013

    03-13 14:49:46.575 : I/ffmpeg4android(6616) : ===============Running
    command from thread path : /sdcard/videokit

    03-13 14:49:46.575 : I/Videokit(6616) : vk ffmpeg sdcardPath :
    /sdcard/videokit

    03-13 14:49:46.575 : I/Videokit(6616) : licenseCheck in path :
    /sdcard/videokit

    03-13 14:49:46.575 : I/Videokit(6616) : isLicExistsComplex...

    03-13 14:49:46.575 : I/Videokit(6616) : trying to open
    /sdcard/videokit/ffmpeglicense.lic

    03-13 14:49:46.575 : I/Videokit(6616) : license file found...

    03-13 14:49:46.575 : I/ffmpeg4android(6616) :
    =======ProgressBackgroundRemote doInBackground=========

    03-13 14:49:46.575 : I/Videokit(6616) : time decoded : 1394535283

    03-13 14:49:46.575 : I/Videokit(6616) : timeStrDec 1394535283 is a valid
    number.

    03-13 14:49:46.575 : I/Videokit(6616) : time diff : 161703

    03-13 14:49:46.575 : I/Videokit(6616) : You used 1 of your 15 trial
    days.

    03-13 14:49:46.575 : D/Videokit(6616) : license check rc : 0

    03-13 14:49:46.575 : D/Videokit(6616) : run() called verion 2.0

    03-13 14:49:46.575 : D/Videokit(6616) : run passing off to main()

    03-13 14:49:46.800 : D/ffmpeg4android(6065) : onServiceDisconnected

    03-13 14:49:48.640 : I/ffmpeg4android(6065) : Got real duration :
    00:00:07.78

    03-13 14:49:48.640 : I/ffmpeg4android(6065) : ==== getting
    currentVkLogSize from VK

    03-13 14:49:48.640 : D/ffmpeg4android(6065) : currentVkLogSize : 5751

    03-13 14:49:48.645 : I/ffmpeg4android(6065) : No ffmpeg4android_log
    file, using vk log

    03-13 14:49:48.645 : I/line(6065) : _rate, rate, width or height

    03-13 14:49:48.650 : I/line(6065) : Statistics : 0 seeks, 0 writeouts

    03-13 14:49:48.650 : I/line(6065) : Statistics : 72873 bytes read, 2
    seeks

    03-13 14:49:48.650 : D/ffmpeg4android(6065) : currentTimeStr : exit

    03-13 14:49:48.650 : D/ffmpeg4android(6065) : ============Found one of
    the exit tokens in the log============

    03-13 14:49:48.650 : I/ffmpeg4android(6065) : onProgressUpdate : 100

    03-13 14:49:48.650 : D/ffmpeg4android(6065) : Releasing wake lock

    03-13 14:49:48.650 : D/ffmpeg4android(6065) : TranscodeBackground
    onPostExecute

    03-13 14:49:48.700 : D/ffmpeg4android(6065) : /sdcard/videokit/null
    length in bytes : 0

    03-13 14:49:48.700 : D/ffmpeg4android(6065) : showNotifications

    03-13 14:49:48.700 : W/ffmpeg4android(6065) : output file is not set use
    the setOutputFilePath method to set the full output file path

    03-13 14:49:48.705 : I/ffmpeg4android(6065) : FFMPEG finished.

    03-13 14:49:48.710 : D/ffmpeg4android(6065) : releaseService()

    03-13 14:49:48.710 : D/ffmpeg4android(6065) : Client stopService()

    03-13 14:49:48.710 : W/ContextImpl(6065) : Implicit intents with
    startService are not safe : Intent
    act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge

    android.content.ContextWrapper.stopService:499
    com.netcompss.ffmpeg4android_client.BaseWizard.stopService:451
    com.netcompss.ffmpeg4android_client.BaseWizard.handleServiceFinished:513