Recherche avancée

Médias (91)

Autres articles (70)

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • 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

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (10206)

  • doc/general.texi : add note about 32-bit GCC builds of AviSynth+

    1er avril 2019, par Stephen Hutchinson
    doc/general.texi : add note about 32-bit GCC builds of AviSynth+
    
    • [DH] doc/general.texi
  • doc/general : Add avs2 decoder/encoder entry

    11 janvier 2020, par Jun Zhao
    doc/general : Add avs2 decoder/encoder entry
    

    Add avs2 decoder/encoder entry

    Signed-off-by : Jun Zhao <barryjzhao@tencent.com>

    • [DH] doc/general.texi
  • 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;