Recherche avancée

Médias (1)

Mot : - Tags -/intégration

Autres articles (108)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (10537)

  • What CRF matches with a JPEG compression rate

    21 janvier 2017, par Xlsx

    I have a very basic program that I wrote in python that takes a video from a webcam and saves it to an mp4 file. Each frame is saved as a jpeg file, and then I use ffmpeg to merge all the frames together. There are two different compression options - the JPEG compression quality, and the mp4 CRF. Which CRF should I use relative to the JPEG compression quality so that the mp4 file is the smallest file size it can be, while not losing data from the already lossy jpeg and not adding extra data to the mp4 ?

    For example, I save my JPEGs with a quality of 30
    When I use ffmpeg, I set the -crf parameter to 38
    When I look at the final mp4 file, I have lost quality from the JPEGs

  • understanding libx264 output [closed]

    11 août 2015, par nmxprime

    I used libx264 in ffmpeg to encode . Finally i got below output .

    Can anyone guide me understanding & interpreting this ?? Any reference/documentation ?

    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] frame I:7     Avg QP:27.51  size: 11996
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] frame P:32    Avg QP:26.90  size:   217
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] frame B:25    Avg QP:32.73  size:    39
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] consecutive B-frames: 20.0% 80.0%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] mb I  I16..4: 74.1% 17.0%  8.9%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] mb P  I16..4:  0.7%  0.1%  0.0%  P16..4:  2.0%  0.3%  0.2%  0.0%  0.0%    skip:96.6%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  1.2%  0.0%  0.0%  direct: 0.1%  skip:98.8%  L0: 5.5% L1:94.5% BI: 0.0%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] final ratefactor: 22.43
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] 8x8 transform intra:16.9% inter:51.1%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] coded y,uvDC,uvAC intra: 12.8% 27.2% 24.4% inter: 0.3% 0.6% 0.0%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i16 v,h,dc,p: 95%  5%  0%  0%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  2% 30% 60%  0%  1%  0%  2%  0%  4%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  7% 58% 10%  2%  4%  2%  9%  1%  8%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i8c dc,h,v,p: 14% 81%  3%  3%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] Weighted P-Frames: Y:0.0% UV:0.0%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] ref P L0: 81.2% 16.6%  1.8%  0.4%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] ref B L0: 70.8% 29.2%
    01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] kb/s:287.21

    Edit :
    I want to know what determines rate factor ? Is it relevant to fps ?
    What is QP and it’s relation with rate factor ?

    Thank You !!

  • AsyncTask publishProgress() does not update progress ffmpeg android

    7 février 2014, par jay

    I am using ffmpeg commands for processing media files.In doInBackground() method i have started the process and every time i get the duration , time values and grabbing progress using time and duration and send progress to publishProgress(progress).When i tested on google nexus(android 4.4 kitkat) it is updating progress dialog correctly but this won't happen in below android 4.4 devices.It is updating with an eye blink of time after completion of the process.
    Here is my code :

    protected String doInBackground(String... params)  {
               // TODO Auto-generated method stub  
               try {
                   proc = mProcess.start();
               } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
               }
               processDuration(proc.getErrorStream());

               // Wait for process to exit
               int exitCode = 1; // Assume error
               try {
                   exitCode = proc.waitFor();
               } catch (InterruptedException e) {
                   Log.e(TAG, "Process interrupted!", e);
               }
               onExit(exitCode);          
               return null;            
           }

           private void onExit(int exitCode) {
               // TODO Auto-generated method stub
               Log.i("exit code >>>>>>>>..", ""+exitCode);
           }

           private void processDuration(InputStream errorStream) {
               // TODO Auto-generated method stub
               Scanner sc = new Scanner(errorStream);          
               // Find duration
               Pattern durPattern = Pattern.compile("(?<=Duration: )[^,]*");
               String dur = sc.findWithinHorizon(durPattern, 0);
               if (dur==null) throw new RuntimeException("Could not parse    duration.");          
               String[] hms = dur.split(":");
               try{
                   totalSecs= Integer.parseInt(hms[0]) * 3600 + Integer.parseInt(hms[1]) *  60 + Double.parseDouble(hms[2]);
                   Log.i(" progress>>>>>>>>>>>>>",""+totalSecs);
               }catch(NumberFormatException e){

               }
               Pattern timePattern = Pattern.compile("(?<=time=)[\\d:.]*");
               String match= sc.findWithinHorizon(timePattern, 0);            
               while (null != (match = sc.findWithinHorizon(timePattern, 0))) {
                   hms = match.split(":");
                   try{
                       processedSecs= Integer.parseInt(hms[0]) * 3600 + Integer.parseInt(hms[1]) *  60 + Double.parseDouble(hms[2]);
                   }catch(NumberFormatException e){

                   }
                   progress = processedSecs / totalSecs;  
                   final int finalProgress=(int)(progress*100);
                   try {

                       publishProgress(""+finalProgress);

                       Thread.sleep(1000);
                   } catch (InterruptedException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                   }

               }
               publishProgress(""+100);
           }

           protected void onPostExecute(String  result) {
               super.onPostExecute(result);                
               mProgressDialog.dismiss();

           }

           protected void onPreExecute() {
               super.onPreExecute();
               showDialog(DIALOG_DOWNLOAD_PROGRESS);              
           }

           protected void onProgressUpdate(String... progress) {
               mProgressDialog.setProgress(Integer.parseInt(progress[0]));
               super.onProgressUpdate(progress);
           }

           public Dialog showDialog(int id) {
           // TODO Auto-generated method stub
           switch (id) {
           case DIALOG_DOWNLOAD_PROGRESS:
               mProgressDialog = new ProgressDialog(context);
               mProgressDialog.setMessage(loading process..");
               mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
               mProgressDialog.setCancelable(false);
               mProgressDialog.setMax(100);
               mProgressDialog.setCanceledOnTouchOutside(false);
               mProgressDialog.show();
               return mProgressDialog;
           default:
               return null;
           }
       }
       }

    Thanks for Your Help..
    Please help me out this problem..........