Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (63)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

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

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

  • Anomalie #4067 : Include manquant

    24 décembre 2017

    Call stack :

    ( ! ) Fatal error : Uncaught Error : Call to undefined function autoriser() in C :\wwwrootDev_mutualisation\spip31.pyrat.net\ecrire\public\quete.php on line 247
    ( ! ) Error : Call to undefined function autoriser() in C :\wwwrootDev_mutualisation\spip31.pyrat.net\ecrire\public\quete.php on line 247
    Call Stack
    # Time Memory Function Location
    1 0.0003 369744 main( ) ...\spip.php:0
    2 0.2321 8020856 include( ’C :\wwwrootDev_mutualisation\spip31.pyrat.net\ecrire\public.php’ ) ...\spip.php:26
    3 0.3603 12323200 include( ’C :\wwwrootDev_mutualisation\spip31.pyrat.net\ecrire\public\evaluer_page.php’ ) ...\public.php:157
    4 0.3603 12347808 eval( ’ ?> ’Sigles’, ’title’ => ’Définitions’, ’titretop’ => ’page_definitions’, ’type’ => ’sigles’, ’lang’ => ’fr’), array("compil"=>array(’plugins/soyezcreateurs/sigles.html’,’html_bc6f01a766b68726744d38216083725d’,’’,2,$GLOBALS[’spip_lang’])), _request("connect")) ; ?>
    Sigles
    GEDEK
    Gigabit Ethernet Data Exchange Kit. “Hardware Stack” Concept invented by ALSE, GEDEK ? is a processor-less autonomous block which implements the Ethnet protocols required to establish, maintain, and perform high performance data exchange over standard Ethernet.

    RGAA
    Référentiel Général pour l’Accessibilité des Administrations

    SPIP
    Système de Publication pour un Internet Participatif

    ’Sigles’, ’titretop’ => ’page_definitions’, ’lang’ => ’fr’), array("compil"=>array(’plugins/soyezcreateurs/sigles.html’,’html_bc6f01a766b68726744d38216083725d’,’’,21,$GLOBALS[’spip_lang’])), _request("connect")) ; ?> ’ ) ...\evaluer_page.php:51
    5 0.3604 12349144 recuperer_fond( ) ...\evaluer_page.php(51) : eval()’d code:6
    6 0.3604 12349640 evaluer_fond( ) ...\utils.php:3224
    7 0.3604 12349640 inclure_page( ) ...\assembler.php:602
    8 0.3608 12351408 public_produire_page_dist( ) ...\assembler.php:278
    9 0.3608 12351408 public_parametrer_dist( ) ...\assembler.php:314
    10 0.3633 12843144 html_50335ec5b4f7cf3b74936762b816286c( ) ...\parametrer.php:128
    11 0.3638 12843832 BOUCLE_LogoArticlehtml_50335ec5b4f7cf3b74936762b816286c( ) ...\html_50335ec5b4f7cf3b74936762b816286c.php:812
    12 0.3638 12845856 quete_condition_statut( ) ...\html_50335ec5b4f7cf3b74936762b816286c.php:151

    Squelette concerné : https://zone.spip.org/trac/spip-zone/browser/_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/noisettes/header/header.html
    Boucle : BOUCLE_LogoArticle

    Code fautif : la ligne quete_condition_statut(’articles.statut’,’publie,prop,prepa/auteur’,’publie’,’’), dans :

    function BOUCLE_LogoArticlehtml_50335ec5b4f7cf3b74936762b816286c(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) 
    

    static $command = array() ;
    static $connect ;
    $command[’connect’] = $connect = ’’ ;if (!defined(’_DIR_PLUGIN_ACCESRESTREINT’))
    $link_empty = generer_url_ecrire(’admin_vider’) ; $link_plugin = generer_url_ecrire(’admin_plugin’) ;
    $message_fr = ’La restriction d\’acc&egrave ;s a ete desactiv&eacute ;e. Corriger le probl&egrave ;me ou vider le cache pour supprimer les restrictions.’ ;
    $message_en = ’Acces Restriction is now unusable. Correct this trouble or empty the cache to finish restriction removal.’ ;
    die($message_fr.’
    ’.$message_en) ;

    if (!isset($command[’table’]))
    $command[’table’] = ’articles’ ;
    $command[’id’] = ’_LogoArticle’ ;
    $command[’from’] = array(’articles’ => ’spip_articles’) ;
    $command[’type’] = array() ;
    $command[’groupby’] = array() ;
    $command[’select’] = array("articles.id_article",
    "articles.id_rubrique",
    "articles.id_article",
    "articles.lang",
    "articles.titre") ;
    $command[’orderby’] = array() ;
    $command[’join’] = array() ;
    $command[’limit’] = ’’ ;
    $command[’having’] =
    array() ;

    $command[’where’] =
    array(
    quete_condition_statut(’articles.statut’,’publie,prop,prepa/auteur’,’publie’,’’),
    quete_condition_postdates(’articles.date’,’’),
    array(’=’, ’articles.id_article’, sql_quote(@$Pile[0][’id_article’], ’’,’bigint(21) NOT NULL AUTO_INCREMENT’)), sql_in(’articles.id_article’, lister_objets_avec_logos(’id_article’), ’’), sql_in(’articles.id_article’, accesrestreint_liste_objets_exclus(’articles’, !test_espace_prive()), ’NOT’), sql_in(’articles.id_rubrique’, accesrestreint_liste_rubriques_exclues(!test_espace_prive()), ’NOT’)) ;
    if (defined("_BOUCLE_PROFILER")) $timer = time()+(float)microtime() ;
    $t0 = "" ;
    // REQUETE
    $iter = IterFactory::create(
    "SQL",
    $command,
    array(’plugins/soyezcreateurs/noisettes/header/header.html’,’html_50335ec5b4f7cf3b74936762b816286c’,’_LogoArticle’,9,$GLOBALS[’spip_lang’])
    ) ;
    if (!$iter->err())
    lang_select($GLOBALS[’spip_lang’]) ;
    $SP++ ;
    // RESULTATS
    while ($Pile[$SP]=$iter->fetch())

    lang_select_public($Pile[$SP][’lang’], ’’, $Pile[$SP][’titre’]) ;
    $t0 .= (($t1 = strval(url_absolue(extraire_attribut(
    ((!is_array($l = quete_logo(’id_article’, ’on’, $Pile[$SP][’id_article’],’’, 0))) ? ’’ :
    ("<img class=\"spip_logo spip_logos\" alt=\"\" src=\"$l[0]\"" . $l[2] .  ($l[1] ? " onmouseover=\"this.src='$l[1]'\" onmouseout=\"this.src='$l[0]'\"" : "") . ' />’)),’src’)))) !==’’ ?
    (’’) :
    ’’) ;
    lang_select() ;

    lang_select() ;
    $iter->free() ;

    if (defined("_BOUCLE_PROFILER")
    AND 1000*($timer = (time()+(float)microtime())-$timer) > _BOUCLE_PROFILER)
    spip_log(intval(1000*$timer)."ms BOUCLE_LogoArticle @ plugins/soyezcreateurs/noisettes/header/header.html","profiler"._LOG_AVERTISSEMENT) ;
    return $t0 ;

  • H.264 and VP8 for still image coding : WebP ?

    1er octobre 2010, par Dark Shikari — H.264, VP8, google, psychovisual optimizations

    JPEG is a very old lossy image format. By today’s standards, it’s awful compression-wise : practically every video format since the days of MPEG-2 has been able to tie or beat JPEG at its own game. The reasons people haven’t switched to something more modern practically always boil down to a simple one — it’s just not worth the hassle. Even if JPEG can be beaten by a factor of 2, convincing the entire world to change image formats after 20 years is nigh impossible. Furthermore, JPEG is fast, simple, and practically guaranteed to be free of any intellectual property worries. It’s been tried before : JPEG-2000 first, then Microsoft’s JPEG XR, both tried to unseat JPEG. Neither got much of anywhere.

    Now Google is trying to dump yet another image format on us, “WebP”. But really, it’s just a VP8 intra frame. There are some obvious practical problems with this new image format in comparison to JPEG ; it doesn’t even support all of JPEG’s features, let alone many of the much-wanted features JPEG was missing (alpha channel support, lossless support). It only supports 4:2:0 chroma subsampling, while JPEG can handle 4:2:2 and 4:4:4. Google doesn’t seem interested in adding any of these features either.

    But let’s get to the meat and see how these encoders stack up on compressing still images. As I explained in my original analysis, VP8 has the advantage of H.264′s intra prediction, which is one of the primary reasons why H.264 has such an advantage in intra compression. It only has i4x4 and i16x16 modes, not i8x8, so it’s not quite as fancy as H.264′s, but it comes close.

    The test files are all around 155KB ; download them for the exact filesizes. For all three, I did a binary search of quality levels to get the file sizes close. For x264, I encoded with --tune stillimage --preset placebo. For libvpx, I encoded with --best. For JPEG, I encoded with ffmpeg, then applied jpgcrush, a lossless jpeg compressor. I suspect there are better JPEG encoders out there than ffmpeg ; if you have one, feel free to test it and post the results. The source image is the 200th frame of Parkjoy, from derf’s page (fun fact : this video was shot here ! More info on the video here.).

    Files : (x264 [154KB], vp8 [155KB], jpg [156KB])

    Results (decoded to PNG) : (x264, vp8, jpg)

    This seems rather embarrassing for libvpx. Personally I think VP8 looks by far the worst of the bunch, despite JPEG’s blocking. What’s going on here ? VP8 certainly has better entropy coding than JPEG does (by far !). It has better intra prediction (JPEG has just DC prediction). How could VP8 look worse ? Let’s investigate.

    VP8 uses a 4×4 transform, which tends to blur and lose more detail than JPEG’s 8×8 transform. But that alone certainly isn’t enough to create such a dramatic difference. Let’s investigate a hypothesis — that the problem is that libvpx is optimizing for PSNR and ignoring psychovisual considerations when encoding the image… I’ll encode with --tune psnr --preset placebo in x264, turning off all psy optimizations. 

    Files : (x264, optimized for PSNR [154KB]) [Note for the technical people : because adaptive quantization is off, to get the filesize on target I had to use a CQM here.]

    Results (decoded to PNG) : (x264, optimized for PSNR)

    What a blur ! Only somewhat better than VP8, and still worse than JPEG. And that’s using the same encoder and the same level of analysis — the only thing done differently is dropping the psy optimizations. Thus we come back to the conclusion I’ve made over and over on this blog — the encoder matters more than the video format, and good psy optimizations are more important than anything else for compression. libvpx, a much more powerful encoder than ffmpeg’s jpeg encoder, loses because it tries too hard to optimize for PSNR.

    These results raise an obvious question — is Google nuts ? I could understand the push for “WebP” if it was better than JPEG. And sure, technically as a file format it is, and an encoder could be made for it that’s better than JPEG. But note the word “could”. Why announce it now when libvpx is still such an awful encoder ? You’d have to be nuts to try to replace JPEG with this blurry mess as-is. Now, I don’t expect libvpx to be able to compete with x264, the best encoder in the world — but surely it should be able to beat an image format released in 1992 ?

    Earth to Google : make the encoder good first, then promote it as better than the alternatives. The reverse doesn’t work quite as well.

    [155KB]
  • IOException : Error running exec() Command, When calling FFmpeg method

    21 avril 2016, par kc ochibili

    i am trying to create a slide show mp4 using this ffmpeg method but i keep getting this IOException Error running exec(). Command when i click the button.

    here is my call

    ffmpegController = new FfmpegController(getTempDirectory(), new File(""));
    ffmpegController.createSlideshowFromImagesAndAudio(slideFrames, getAudioPath(), getOutPath(), 500, mCallbackResponse);

    Here is the source code of the small project.
    Here is the apk

    And here is my Error message

      Error running exec(). Command: [ffmpeg, -y, -i, /storage/emulated/0/TestFFmpeg/frame1.png, /storage/emulated/0/TestFFmpeg/temp/image-000.jpg]

    Working Directory: lib Environment: [VIBE_PIPE_PATH=/dev/pipes, ANDROID_ROOT=/system, EMULATED_STORAGE_SOURCE=/mnt/shell/emulated, LOOP_MOUNTPOINT=/mnt/obb, EMULATED_STORAGE_TARGET=/storage/emulated, ANDROID_BOOTLOGO=1, LD_LIBRARY_PATH=/vendor/lib:/system/lib, EXTERNAL_STORAGE=/storage/emulated/legacy, ANDROID_SOCKET_zygote=9, ANDROID_DATA=/data, PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin, ANDROID_ASSETS=/system/app, ASEC_MOUNTPOINT=/mnt/asec, BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/sec_edm.jar:/system/framework/seccamera.jar:/system/framework/secocsp.jar:/system/framework/sc.jar:/system/framework/scrollpause.jar:/system/framework/stayrotation.jar:/system/framework/smartfaceservice.jar:/system/framework/sws.jar:/system/framework/WfdCommon.jar, ANDROID_PROPERTY_WORKSPACE=8,66560, SECONDARY_STORAGE=/storage/extSdCard:/storage/UsbDriveA:/storage/UsbDriveB:/storage/UsbDriveC:/storage/UsbDriveD:/storage/UsbDriveE:/storage/UsbDriveF, ANDROID_STORAGE=/storage]

    Here is my Activity code :

    public class MainActivity extends Activity {

    Button testButton;
    EditText errorLogView;

    TinyDB tinydb;// sharedPreference Wrapper
    static Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       context = getApplicationContext();
       tinydb = new TinyDB(context); // sharedPreference Wrapper
       testButton = (Button) findViewById(R.id.test_Image_View);
       errorLogView = (EditText) findViewById(R.id.errorlog);
       setListeners();
    }

    public void setListeners(){
       testButton.setOnClickListener(new OnClickListener() {

           @Override
           public void onClick(View v) {
               // TODO Auto-generated method stub
               Bitmap frame1Bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
               //Saves the image to the file system an returns the path
               String firstFrame = tinydb.putImagePNG("TestFFmpeg", "frame1.png", frame1Bitmap);
               String secondFrame = tinydb.putImagePNG("TestFFmpeg", "frame2.png", frame1Bitmap);
               String thirdFrame = tinydb.putImagePNG("TestFFmpeg", "frame3.png", frame1Bitmap);


               ArrayList<clip> slideFrames = new ArrayList<clip>();
               slideFrames.add(new Clip(firstFrame));
               slideFrames.add(new Clip(secondFrame));
               slideFrames.add(new Clip(thirdFrame));

               copyResourceSoundToSDCard();

               FfmpegController ffmpegController = null;
               try {

                   ffmpegController = new FfmpegController(getTempDirectory(), new File(""));
                   ffmpegController.createSlideshowFromImagesAndAudio(slideFrames, getAudioPath(), getOutPath(), 500, mCallbackResponse);

               } catch (FileNotFoundException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                   toast("FileNotFoundException");
                   toast(e.getLocalizedMessage());
               } catch (IOException e) {
                   // TODO Auto-generated catch block
                   toast("IOException");
                   toast(e.getLocalizedMessage());
                   errorLogView.setText(e.getLocalizedMessage());
                   e.printStackTrace();
               } catch (Exception e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                   toast("Exception ");
                   toast(e.getLocalizedMessage());
               }          
           }
       });


    }

    public Clip getAudioPath(){
       Clip mAudPath = null;
       try {
           mAudPath = new Clip(new File(tinydb.getString("audpath")).getCanonicalPath());
       } catch (IOException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }
       return mAudPath;
    }

    public Clip getOutPath(){
       String videoName = ("myTestVideo.mp4");
       String saveFolder = ("TestFFmpeg/videos");
       String movieFullPath = setupAudioFolder(saveFolder, videoName);

       Clip outPath = null;
       try {
           outPath = new Clip(new File(movieFullPath).getCanonicalPath());
       } catch (IOException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }
       tinydb.putString("outhPath", outPath.path);

       return outPath;
    }

    public void copyResourceSoundToSDCard(){
       try {
           copyRawFile(context, R.raw.screens_shot_sound, getResaveDirectory(), "755");
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (InterruptedException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
    }

    private File getResaveDirectory(){

       String audioName = ("ShotSound.wav");
       String saveFolder = ("TestFFmpeg");
       File appRootFile;
       String path = setupAudioFolder(saveFolder, audioName);
       tinydb.putString("audpath",  path);
       appRootFile = new File(path);
       return appRootFile;
     }

    public String setupAudioFolder(String theFolder, String theImageName){
       File sdcard_path = Environment.getExternalStorageDirectory();
       File mFolder = new File(sdcard_path, theFolder);
       if (!mFolder.exists()) {
           if (!mFolder.mkdirs()) {
               Log.e("While creatingsave path",
                       "Default Save Path Creation Error");
               // Toast("Default Save Path Creation Error");
           }
       }
       String mFullPath = mFolder.getPath() + '/' + theImageName;

       return mFullPath;
    }
    private static void copyRawFile(Context ctx, int resid, File file, String mode) throws IOException, InterruptedException
    {
       final String abspath = file.getAbsolutePath();
       // Write the iptables binary
       final FileOutputStream out = new FileOutputStream(file);
       final InputStream is = ctx.getResources().openRawResource(resid);
       byte buf[] = new byte[1024];
       int len;
       while ((len = is.read(buf)) > 0) {
           out.write(buf, 0, len);
       }
       out.close();
       is.close();
       // Change the permissions
       Runtime.getRuntime().exec("chmod "+mode+" "+abspath).waitFor();
    }      
    ShellCallback mCallbackResponse = new ShellUtils.ShellCallback() {

       @Override
       public void shellOut(String shellLine) {
           // TODO Auto-generated method stub

       }

       @Override
       public void processComplete(int exitValue) {
           // TODO Auto-generated method stub
           toast("process done");

       }
    };

    public File getTempDirectory(){
       String saveFolder = ("TestFFmpeg/temp");
       File appRootFile = setupCustomFile(saveFolder);


       return appRootFile;
    }

    public File setupCustomFile(String theFolder){
       File sdcard_path = Environment.getExternalStorageDirectory();
       File mFolder = new File(sdcard_path, theFolder);
       if (!mFolder.exists()) {
           if (!mFolder.mkdirs()) {
               Log.e("While creatingsave path",
                       "Default Save Path Creation Error");
               // Toast("Default Save Path Creation Error");
           }
       }

       return mFolder;
    }



    public static void toast(String thetext) {
       Toast.makeText(context, thetext, Toast.LENGTH_LONG).show();
    }
    </clip></clip>

    any help would be appreciated