Recherche avancée

Médias (1)

Mot : - Tags -/ipad

Autres articles (77)

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

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (12892)

  • Fix a duplicate word.

    11 février 2012, par Ralph Giles
    Fix a duplicate word.
    

    Thanks to darkstarbyte for pointing out the typo.

    git-svn-id : http://svn.xiph.org/trunk/theora@18195 0101bb08-14d6-0310-b084-bc0e0c8e3800

    • [DH] doc/spec/spec.tex
  • avcodec/dca : fix sync word search error condition

    2 mai 2016, par foo86
    avcodec/dca : fix sync word search error condition
    

    This didn’t actually check if sync word was found and always errored out
    with "-err_detect explode" option enabled.

    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavcodec/dca_core.c
  • how to add effect to audio, sound like a phone call phone, inner monologue, or sounds like a man/woman ? [closed]

    7 mars, par Mathew

    I'm trying to apply different audio effects, such as making audio sound like a phone call. Below is my current approach. As you can see, I'm using multiple filters and simple algorithms to achieve this effect, but the output quality isn't ideal.

    &#xA;

    I've looked into FFmpeg filters and noticed mentions of LADSPA/LV2 plugins. Are these viable solutions ? Any other suggestions would be greatly appreciated.

    &#xA;

    public static void applySceneEffect(String inputPath, String outputPath, int sceneType) {&#xA;    LOGGER.info("apply scene effect {} to {}", sceneType, inputPath);&#xA;&#xA;    try (FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputPath);&#xA;         FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputPath, grabber.getAudioChannels())) {&#xA;&#xA;        grabber.setOption("vn", ""); &#xA;        grabber.start();&#xA;&#xA;       &#xA;        recorder.setAudioCodec(avcodec.AV_CODEC_ID_PCM_S16LE); &#xA;        recorder.setSampleRate(grabber.getSampleRate());&#xA;        recorder.setAudioChannels(grabber.getAudioChannels());&#xA;        recorder.setAudioBitrate(grabber.getAudioBitrate());&#xA;        recorder.setFormat("wav"); &#xA;&#xA;&#xA;        String audioFilter = String.join(",",&#xA;                "aresample=8000",      &#xA;                "highpass=f=300, lowpass=f=3400",       &#xA;                "acompressor=threshold=-15dB:ratio=4:attack=10:release=100", &#xA;                "volume=1.5",          &#xA;                "aecho=0.9:0.4:10:0.6"&#xA;        );&#xA;&#xA;        FFmpegFrameFilter f1 = new FFmpegFrameFilter(audioFilter, grabber.getAudioChannels());&#xA;        f1.setSampleRate(grabber.getSampleRate());&#xA;        f1.start();&#xA;&#xA;        recorder.start();&#xA;&#xA;        Random random = new Random();&#xA;        double noiseLevel = 0.02; &#xA;&#xA;   &#xA;        while (true) {&#xA;            var frame = grabber.grabFrame(true, false, true, true);&#xA;            if (frame == null) {&#xA;                break;&#xA;            }&#xA;&#xA;            ShortBuffer audioBuffer = (ShortBuffer) frame.samples[0];&#xA;            short[] audioData = new short[audioBuffer.remaining()];&#xA;            audioBuffer.get(audioData);&#xA;&#xA;            applyElectricNoise(audioData, grabber.getSampleRate());&#xA;&#xA;            audioData = applyDistortion(audioData, 1.5, 30000);&#xA;&#xA;            audioBuffer.rewind();&#xA;            audioBuffer.put(audioData);&#xA;            audioBuffer.flip();&#xA;&#xA;&#xA;            f1.push(frame); &#xA;            Frame filteredFrame;&#xA;            while ((filteredFrame = f1.pull()) != null) {&#xA;                recorder.record(filteredFrame); &#xA;            }&#xA;        }&#xA;&#xA;        recorder.stop();&#xA;        recorder.release();&#xA;        grabber.stop();&#xA;        grabber.release();&#xA;    } catch (FrameGrabber.Exception | FrameRecorder.Exception | FFmpegFrameFilter.Exception e) {&#xA;        throw new RuntimeException(e);&#xA;    }&#xA;}&#xA;&#xA;&#xA;private static final double NOISE_LEVEL = 0.005; &#xA;private static final int NOISE_FREQUENCY = 60;  &#xA;&#xA;public static void applyElectricNoise(short[] audioData, int sampleRate) {&#xA;    Random random = new Random();&#xA;&#xA;    &#xA;    for (int i = 0; i &lt; audioData.length; i&#x2B;&#x2B;) {&#xA;        double noise = Math.sin(2 * Math.PI * NOISE_FREQUENCY * i / sampleRate);&#xA;&#xA;        double electricNoise = random.nextGaussian() * NOISE_LEVEL * Short.MAX_VALUE &#x2B; noise;&#xA;&#xA;        audioData[i] = (short) Math.max(Math.min(audioData[i] &#x2B; electricNoise, Short.MAX_VALUE), Short.MIN_VALUE); &#xA;    }&#xA;}&#xA;&#xA;public static short[] applyTremolo(short[] audioData, int sampleRate, double frequency, double depth) {&#xA;    double phase = 0.0;&#xA;    double phaseIncrement = 2 * Math.PI * frequency / sampleRate;&#xA;&#xA;    for (int i = 0; i &lt; audioData.length; i&#x2B;&#x2B;) {&#xA;        double modulator = 1.0 - depth &#x2B; depth * Math.sin(phase); &#xA;        audioData[i] = (short) (audioData[i] * modulator);&#xA;&#xA;        phase &#x2B;= phaseIncrement;&#xA;        if (phase > 2 * Math.PI) {&#xA;            phase -= 2 * Math.PI;&#xA;        }&#xA;    }&#xA;    return audioData;&#xA;}&#xA;&#xA;public static short[] applyDistortion(short[] audioData, double gain, double threshold) {&#xA;    for (int i = 0; i &lt; audioData.length; i&#x2B;&#x2B;) {&#xA;        double sample = audioData[i] * gain;&#xA;&#xA;        if (sample > threshold) {&#xA;            sample = threshold;&#xA;        } else if (sample &lt; -threshold) {&#xA;            sample = -threshold;&#xA;        }&#xA;&#xA;        audioData[i] = (short) sample;&#xA;    }&#xA;    return audioData;&#xA;}&#xA;

    &#xA;