Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (76)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

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

  • 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

Sur d’autres sites (11821)

  • SIMD opus pvq_search implementation

    8 juin 2017, par Ivan Kalvachev
    SIMD opus pvq_search implementation
    

    Explanation on the workings and methods used by the
    Pyramid Vector Quantization Search function
    could be found in the following Work-In-Progress mail threads :
    http://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212146.html
    http://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212816.html
    http://ffmpeg.org/pipermail/ffmpeg-devel/2017-July/213030.html
    http://ffmpeg.org/pipermail/ffmpeg-devel/2017-July/213436.html

    Signed-off-by : Ivan Kalvachev <ikalvachev@gmail.com>

    • [DH] libavcodec/opus_pvq.c
    • [DH] libavcodec/opus_pvq.h
    • [DH] libavcodec/x86/Makefile
    • [DH] libavcodec/x86/opus_dsp_init.c
    • [DH] libavcodec/x86/opus_pvq_search.asm
  • ENOENT Error in Node When Calling Ffmpeg binary from Fluent-Ffmpeg Api

    7 novembre 2018, par Peter

    Background

    I am wiring up a firebase function in node. Purpose is to parse an inbound audio clip to a set length. Using ffmpeg and fluent-ffmpeg.

    Problem

    When the function is triggered in firebase, I am getting ENOENT error when Fluent-Ffmpeg attempts to access the Ffmpeg binary

    Firebase Debug Output

    Error : Error : spawn
    ./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg ENOENT
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9) code : ’ENOENT’, errno :
    ’ENOENT’, syscall : ’spawn
    ./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg’, path :
    ’./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg’,
    spawnargs : [ ’-formats’ ]

    Expected Outcome

    Inbound file is downloaded to a temp directory, cropped, and re-uploaded to firebase storage as the cropped file.

    Environment

    • mac client / firebase storage
    • node v8.1.0
    • ffmpeg v3.2.2
    • fluent-ffmpeg v2.1.2

    Code [Updated To Reflect Svenskunganka’s Change. Now Works]

    const ffmpeg = require('fluent-ffmpeg');
    const PREVIEW_PREFIX = 'preview_';

    exports.generatePreviewClip = functions.storage.object('audioFiles').onChange(event => {

         //console.log('Times this function has run: ', run++);

         const object = event.data; // The Storage object.
         const fileBucket = object.bucket; // The Storage bucket that contains the file.
         const filePath = object.name; // File path in the bucket.
         const contentType = object.contentType; // File content type.
         const resourceState = object.resourceState; // The resourceState is 'exists' or 'not_exists' (for file/folder deletions).
         const metageneration = object.metageneration; // Number of times metadata has been generated. New objects have a value of 1.

         // Exit if this is triggered on a file that is not an audio file.
         if (!contentType.startsWith('audio/')) {
           console.log('This is not an audio file.');
           console.log('This is the file:', filePath);
           return;
         }

         // Get the file name.
         const fileName = path.basename(filePath);
         console.log('Working with filename', fileName);
         // Exit if the file is already an audio clip.
         if (fileName.startsWith(PREVIEW_PREFIX)) {
           console.log('Already a preview clip.');
           return;
         }

         // Exit if this is a move or deletion event.
         if (event.data.resourceState === 'not_exists') {
           console.log('This is a deletion event.');
           return;
         }

         // Exit if file exists but is not new and is only being triggered
         // because of a metadata change.
         if (resourceState === 'exists' &amp;&amp; metageneration > 1) {
           console.log('This is a metadata change event.');
           return;
         }

         // Download file from bucket.

         const bucket = gcs.bucket(fileBucket);
         const tempFilePath = path.join(os.tmpdir(), fileName);
         return bucket.file(filePath).download({
           destination: tempFilePath
         }).then(() => {

           console.log('Audio file downloaded locally to temp directory', tempFilePath);

       var ffmpegPath = require("ffmpeg-binaries").ffmpegPath();
       var ffprobePath = require("ffmpeg-binaries").ffprobePath();

       // Generate a croped file using ffmpeg.
       var command = new ffmpeg(tempFilePath);
           command.setFfmpegPath(ffmpegPath);
           command.setFfprobePath(ffprobePath);

           command
                 .setStartTime('00:00:03')
                 .setDuration('10')
                 .output(tempFilePath)
                 .on('end', function() {
                       console.log('Audio Crop Done Successfully');
                  })
                  .on('error', function(err)
                  {
                     console.log('Error:', err);
                  }).run();

                 }).then(() => {
           console.log('Preview file created at', tempFilePath);
           // We add a 'preview_' prefix to the audio file name. that's how it will appear in firebase.
           const previewFileName = PREVIEW_PREFIX + fileName;
           console.log('previewFileName is', previewFileName)
           const previewFilePath = path.join(path.dirname(filePath), previewFileName);
           console.log('previewFilePath is', previewFilePath);
           // Uploading the preview file.
           return bucket.upload(tempFilePath, {destination: previewFilePath});
         // Once the file has been uploaded delete the local file to free up disk space.
         }).then(() => fs.unlinkSync(tempFilePath));

         // [END audio file generation]

       });

    Contents and Structure of my ffmpeg-binaries/bin Directory

    -rwxrwxrwx  1 sherpa  staff    24M Dec 10  2016 ffmpeg
    -rwxr--r--  1 sherpa  staff    35M Jan 12  2017 ffmpeg.exe
    -rwxr--r--  1 sherpa  staff    35M Jan 12  2017 ffplay.exe
    -rwxrwxrwx  1 sherpa  staff    24M Dec 10  2016 ffprobe
    -rwxr--r--  1 sherpa  staff    35M Jan 12  2017 ffprobe.exe
    -rwxrwxrwx  1 sherpa  staff    22M Dec 10  2016 ffserver

    Things I Have Tried

    • I can execute ffmpeg from the command line
    • sudo chmod -R u+x ffmpeg-binaries/
    • ffmpeg set in global path
    • used ffmpeg.exe binary in setFfmpegPath, got same result
      • Error : Error : spawn ./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg.exe ENOENT
    • played with numerous different setFfmpegPath path structures, e.g :
      • ./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg
      • node_modules/ffmpeg-binaries/bin/ffmpeg
      • ./Cloud/functions/node_modules/ffmpeg-binaries/bin/

    Thanks for any suggestions.

  • FFMPEG : Incompatible pixel format 'rgb24' for codec 'gif', auto-selecting format 'rgb8'

    30 avril 2020, par Alexander Korzhykov

    I use ffmpeg to record xvfb desktop with 24 bit color depth and save it in gif format (and then I pipe it to AWS so you can replace the ' - ' symbol with a filename.gif in the end of the command, it doesn't affect this issue) :

    &#xA;&#xA;

    ffmpeg -f x11grab -video_size 800x600 -r 30 -i :99.0 -f gif -pix_fmt rgb24 -t 5 -&#xA;

    &#xA;&#xA;

    However, I always get the warning :

    &#xA;&#xA;

    &#xA;

    Incompatible pixel format 'rgb24' for codec 'gif', auto-selecting&#xA; format 'rgb8'

    &#xA;

    &#xA;&#xA;

    Which leads to incorrect color reproduction. I tried it both on Windows and Ubuntu Docker container, both pre-compiled and from source, from repository with last commits, but no luck. Also I've seen in the other people's logs that they use --pix_fmt rgb24 or bgr24 and it works just fine.

    &#xA;&#xA;

    So the question is : is there anything I need to install or configure in order to use rgb24 with gif encoder ? Or maybe there is a workaround like converting it to another format first ?

    &#xA;&#xA;

    Here is the part of my output :

    &#xA;&#xA;

    ffmpeg version git-2017-08-18-f386dd7 Copyright (c) 2000-2017 the FFmpeg developers&#xA;  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609&#xA;  configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libxcb&#xA;  libavutil      55. 74.100 / 55. 74.100&#xA;  libavcodec     57.102.100 / 57.102.100&#xA;  libavformat    57. 76.100 / 57. 76.100&#xA;  libavdevice    57.  7.100 / 57.  7.100&#xA;  libavfilter     6. 99.100 /  6. 99.100&#xA;  libswscale      4.  7.102 /  4.  7.102&#xA;  libswresample   2.  8.100 /  2.  8.100&#xA;  libpostproc    54.  6.100 / 54.  6.100&#xA;&#xA;&#xA;Input #0, x11grab, from &#x27;:99.0&#x27;:&#xA;  Duration: N/A, start: 1503077459.413864, bitrate: N/A&#xA;    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1024x768, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (rawvideo (native) -> gif (native))&#xA;Press [q] to stop, [?] for help&#xA;Incompatible pixel format &#x27;bgr24&#x27; for codec &#x27;gif&#x27;, auto-selecting format &#x27;rgb8&#x27;&#xA;&#xA;&#xA;Output #0, gif, to &#x27;pipe:&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf57.76.100&#xA;    Stream #0:0: Video: gif, rgb8, 1024x768, q=2-31, 200 kb/s, 30 fps, 100 tbn, 30 tbc&#xA;    Metadata:&#xA;      encoder         : Lavc57.102.100 gif&#xA;

    &#xA;&#xA;

    PS : the only workaround I've found is to split input video into jpegs and pipe them to ImageMagick which then concatenates jpegs to gif. This is extremely slow process and increases render time x20 times.

    &#xA;