Recherche avancée

Médias (1)

Mot : - Tags -/biomaping

Autres articles (103)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

Sur d’autres sites (9940)

  • Properly open audio files with libav/ffmpeg

    20 novembre 2013, par Hyndrix

    I am trying to decode audio samples from various file formats using ffmpeg. Therefore I have started some experimenting based on the code in this discussion : How to decode audio via FFmpeg in Android . I use the latest FFMPEG release (1.0) and compile it using https://github.com/halfninja/android-ffmpeg-x264

    AVFormatContext * pFormatCtx;

    avcodec_register_all();
    av_register_all();

    int lError;
    if ((lError = avformat_open_input(&pFormatCtx, filename, NULL, 0))
           != 0) {
       LOGE("Error open source file: %d", lError);
       return;
    }
    if ((lError = avformat_find_stream_info(pFormatCtx, 0)) < 0) {
       LOGE("Error find stream information: %d (Streams: %d)", lError, pFormatCtx->nb_streams);
       return;
    }
    LOGE("audio format: %s", pFormatCtx->iformat->name);
    LOGE("audio bitrate: %d", pFormatCtx->bit_rate);
    audioStreamIndex = av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_AUDIO,
           -1, -1, &codec, 0);

    //if (audioStreamIndex < 0 || audioStreamIndex >= pFormatCtx->nb_streams)
    //  audioStreamIndex = 0;

    LOGE("Stream: %d (total: %d)", audioStreamIndex, pFormatCtx->nb_streams);
    LOGE("audio codec: %s", codec->name);

    FFMPEG is compiled using enable-decoder=mp1/mp2/mp3/ogg/vorbis/wav/aac/theora and without any external libraries (e.g. libmp3lame, libtheora, etc.)

    Opening of mp3 and wav files works without problems producing the following output for instance for mp3 :

    audio format : mp3

    audio bitrate : 256121

    stream : 0 (total : 1)

    audio codec : mp3

    But when I try to open an ogg file I get this :

    Error find stream information : -1 (Streams : 1)

    When I manually set audioStreamIndex=0 and comment out the return statement :

    Error find stream information : -1 (Streams : 1)

    audio format : mp3

    audio bitrate : 0

    stream : 0 (total : 1)

    audio codec : mp3

    For m4a (AAC) I get this :

    audio format : mp3

    audio bitrate : 288000

    stream : 0 (total : 1)

    audio codec : mp1

    but later it fails in avcodec_decode_audio3.

    I also tried to manually force a format without success :

    AVInputFormat *pForceFormat= av_find_input_format("ogg");
    if ((lError = avformat_open_input(&pFormatCtx, filename, pForceFormat, 0))
    // continue

    Is there something wrong with the loading code which makes it only work with mp3 and wav and fails for other formats ?

    Regards,

  • PHP Run FFMPEG in background, and find out when it's done [closed]

    27 septembre 2012, par toms900

    Possible Duplicate :
    Run a ffmpeg process in the background

    I was wondering if there's any easy way to runn and ffmpeg process in the background so people can leave the page. And if you do that, then tell if the ffmpeg process is running, and when it's done, update the database to "finished". I'll post my code if I need to. Thanks !
    Here's the code on the processing page :

    <?php
    $name = $_FILES['upload_file']['name'];
    $type = $_FILES['upload_file']['type'];
    $size = $_FILES['upload_file']['size'];
    $tmpname = $_FILES['upload_file']['tmp_name'];

    if (!$title) {
       $title = $name;
    }

    if (!$description) {
       $description = "No description available.";
    }

    $string = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',10)),0,10);
    $videoname = "$string.mp4";
    $date = date("F d, Y"); // October 09, 2010
    $srcFile = $tmpname;
    mkdir("users/$usercode/uploads/$string");
    mkdir("users/$usercode/uploads/$string/HD");
    mkdir("users/$usercode/uploads/$string/regular");
    mkdir("users/$usercode/uploads/$string/mobile_upload");
    mkdir("users/$usercode/uploads/$string/thumbnails");
    $destFile1 = "/users/$usercode/uploads/$string/HD/$string.mp4";
    $destFile2 = "/users/$usercode/uploads/$string/regular/$string.mp4";
    $destFile3 = "/users/$usercode/uploads/$string/mobile_upload/$string.mp4";
    $ffmpegPath = "/usr/local/bin/ffmpeg";
    $flvtool2Path = "/usr/bin/flvtool2";
    $yamdiPath = "/usr/bin/yamdi";
    $mp4boxPath = "/usr/local/bin/MP4Box";
    // Create our FFMPEG-PHP class
    $ffmpegObj = new ffmpeg_movie($srcFile);
    // Save our needed variables
    $srcWidth = $ffmpegObj->getFrameWidth();
    $srcHeight = $ffmpegObj->getFrameHeight();
    $srcFPS = $ffmpegObj->getFrameRate();
    $srcAB = $ffmpegObj->getAudioBitRate();  
    $srcAR = $ffmpegObj->getAudioSampleRate();
    $res = $srcWidth . "x" . $srcHeight;
    // Call our convert using exec()
    $iphone1 = getcwd().$destFile1;
    $iphone2 = getcwd().$destFile2;
    $iphone3 = getcwd().$destFile3;
    $low = "854x480";
    $local_img = "/users/$usercode/uploads/$string/thumbnails/$string.jpg";
    $img = getcwd().$local_img;
    $img = preg_replace('/ /','\ ',$img);
    $thumb = "$string.jpg";
    $cmd = "$ffmpegPath -i $tmpname 2>&1";  
    if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {  
       $total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];  
       $interval = rand(0, $total);  
    }  

    $img = shell_exec("$ffmpegPath -ss $interval -i $tmpname 2>&1 -s 120x90 -f mjpeg -vframes 1 $img");


    if ($srcWidth >= 1280 && $srcHeight >= 720) {
       $out1 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre normal -ab $srcAB -ar $srcAR -b 5000k -r $srcFPS -s $res -acodec libfaac $iphone1");
       $out2 = shell_exec("$mp4boxPath -inter 0.5 $iphone1");
       $out3 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre normal -ab $srcAB -ar $srcAR -b 2000k -r $srcFPS -s $low -acodec libfaac $iphone2");
       $out4 = shell_exec("$mp4boxPath -inter 0.5 $iphone2");
       $out5 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre slow -ab 64k -ar 44100 -b 500k -r 30 -s $low -acodec libfaac $iphone3");
       $out6 = shell_exec("$mp4boxPath -inter 0.5 $iphone3");
       echo 1;
    }
    else {
       $out3 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre normal -ab 64k -ar 44100 -b 500k -r 30 -s $low -acodec libfaac $iphone2");
       $out4 = shell_exec("$mp4boxPath -inter 0.5 $iphone2");
       $out5 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre slow -ab 64k -ar 44100 -b 500k -r 30 -s $low -acodec libfaac $iphone3");
       $out6 = shell_exec("$mp4boxPath -inter 0.5 $iphone3");          
       echo 1;
    }
    function generate_random($number_of_characters)
    {
           $characters = array();
           $randomchar = "";
           $x = 0;
           for($i = 48; $i < 123; $i++)
           {
                   if(ctype_alnum(chr($i)))
                   {
                           $characters[$x] = chr($i);
                           $x++;
                   }
           }
           for($i = 0; $i < $number_of_characters; $i++)
           {
                   $randomchar .= $characters[rand(0, count($characters) - 1)];
           }
           return $randomchar;
    }
    ?>
  • Anomalie #3234 : Upload gros fichiers

    24 juin 2014, par Pierre Miquel

    Je viens de tester et effectivement ça marche bien.
    J’ai juste modifié les lignes suivantes

    // on est en hors quota donc erreur
           echo '

    Erreur de chargement :

    le poids total des fichiers d&eacute ;passe la limite autoris&eacute ;e (’.ini_get(’post_max_size’).
    ’o).
    Pour recommencer, veuillez recharger cette page.

    ’ ;
    exit() ;