Recherche avancée

Médias (1)

Mot : - Tags -/berlin

Autres articles (70)

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

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

Sur d’autres sites (11195)

  • Senior Software Engineer for Enterprise Analytics Platform

    28 janvier 2016, par Matthieu Aubry — Uncategorized

    We’re looking for a lead developer to work on Piwik Enterprise Analytics core platform software. We have some exciting challenges to solve and need you !

    You’ll be working with both fellow employees and our open-source community. Piwik staff lives in New Zealand, Europe (Poland, Germany) and in the U.S. We do the vast majority of our collaboration online.

    We are a small, flexible team, so when you come aboard, you will play an integral part in engineering. As a leader you’ll help us to prioritise work and grow our community. You’ll help to create a welcoming environment for new contributors and set an example with your development practices and communications skills. You will be working closely with our CTO to build a future for Piwik.

    Key Responsibilities

    • Strong competency coding in PHP and JavaScript.
    • Scaling existing backend system to handle ever increasing amounts of traffic and new product requirements.
    • Outstanding communication and collaboration skills.
    • Drive development and documentation of internal and external APIs (Piwik is an open platform).
    • Help make our development practices better and reduce friction from idea to deployment.
    • Mentor junior engineers and set the stage for personal growth.

    Minimum qualifications

    • 5+ years of experience in product development, security, usable interface design.
    • 5+ years experience building successful production software systems.
    • Strong competency in PHP5 and JavaScript application development.
    • Skill at writing tests and reviewing code.
    • Strong analytical skills.

    Location

    • Remote work position !
    • or you can join us in our office based in Wellington, New Zealand or in Wrocław, Poland.

    Benefits

    • Competitive salary.
    • Remote work is possible.
    • Yearly meetup with the whole team abroad.
    • Be part of a successful open source company and community.
    • In our Wellington (NZ) and Wroclaw (PL) offices : snacks, coffee, nap room, Table football, Ping pong…
    • Regular events.
    • Great team of people.
    • Exciting projects.

    Learn more

    Learn more what it’s like to work on Piwik in our blog post

    About Piwik

    At Piwik we develop the leading open source web analytics platform, used by more than one million websites worldwide. Our vision is to help the world liberate their analytics data by building the best open alternative to Google Analytics.

    The Piwik platform collects, stores and processes a lot of information : hundreds of millions of data points each month. We create intuitive, simple and beautiful reports that delight our users.

    Apply online

    To apply for this position, please Apply online here. We look forward to receiving your applications !

  • Nodejs ffmpeg "The input file path can not be empty" error, but files exist

    29 octobre 2022, par 0szi

    I'm trying to merge an audio file with a video file from the same source (Youtube)

    


    In the following code I first read in the console parameters wirh commander then i define the videoOutput dir and download the highset res. video from youtube with node-ytdl-core. After that I download the audio for the video. and in the callback of the video.on("end", ....)
i call the function merge()

    


    const path = require(&#x27;path&#x27;);&#xA;const fs = require(&#x27;fs&#x27;);&#xA;const readline = require("readline");&#xA;const ytdl = require(&#x27;ytdl-core&#x27;);&#xA;const { program } = require(&#x27;commander&#x27;);&#xA;const ffmpeg = require(&#x27;ffmpeg&#x27;);&#xA;&#xA;program&#xA;    .option("--url, --url <url>", "Youtube video url")&#xA;    .option("--name, --name <name>", "Name of the video in hard drive")&#xA;&#xA;program.parse(process.argv);&#xA;&#xA;&#xA;const options = program.opts();&#xA;let url = options.url;&#xA;let name = options.name;&#xA;&#xA;let videoOutput = path.resolve(`./video${name}.mp4`);&#xA;&#xA;let video = ytdl(url, {&#xA;  quality: "highestvideo"&#xA;});&#xA;&#xA;let starttime = 0;&#xA;&#xA;video.pipe(fs.createWriteStream(videoOutput));&#xA;&#xA;video.once(&#x27;response&#x27;, () => {&#xA;  starttime = Date.now();&#xA;});&#xA;&#xA;video.on(&#x27;progress&#x27;, (chunkLength, downloaded, total) => {&#xA;    const percent = downloaded / total;&#xA;    const downloadedMinutes = (Date.now() - starttime) / 1000 / 60;&#xA;    const estimatedDownloadTime = (downloadedMinutes / percent) - downloadedMinutes;&#xA;    readline.cursorTo(process.stdout, 0);&#xA;    process.stdout.write(`${(percent * 100).toFixed(2)}% downloaded `);&#xA;    process.stdout.write(`(${(downloaded / 1024 / 1024).toFixed(2)}MB of ${(total / 1024 / 1024).toFixed(2)}MB)\n`);&#xA;    process.stdout.write(`running for: ${downloadedMinutes.toFixed(2)}minutes`);&#xA;    process.stdout.write(`, estimated time left: ${estimatedDownloadTime.toFixed(2)}minutes `);&#xA;    readline.moveCursor(process.stdout, 0, -1);&#xA;  });&#xA;&#xA;  video.on(&#x27;end&#x27;, () => {&#xA;    process.stdout.write(&#x27;\n\n&#x27;);&#xA;  });&#xA;&#xA;&#xA;//   repeat for audio&#xA;video = ytdl(url, {&#xA;  quality: "highestaudio"&#xA;});&#xA;  &#xA;starttime = 0;&#xA;&#xA;let audioOutput = path.resolve(`./audio${name}.mp3`);&#xA;&#xA;video.pipe(fs.createWriteStream(audioOutput));&#xA;&#xA;video.once(&#x27;response&#x27;, () => {&#xA;  starttime = Date.now();&#xA;});&#xA;&#xA;video.on(&#x27;progress&#x27;, (chunkLength, downloaded, total) => {&#xA;    const percent = downloaded / total;&#xA;    const downloadedMinutes = (Date.now() - starttime) / 1000 / 60;&#xA;    const estimatedDownloadTime = (downloadedMinutes / percent) - downloadedMinutes;&#xA;    readline.cursorTo(process.stdout, 0);&#xA;    process.stdout.write(`${(percent * 100).toFixed(2)}% downloaded `);&#xA;    process.stdout.write(`(${(downloaded / 1024 / 1024).toFixed(2)}MB of ${(total / 1024 / 1024).toFixed(2)}MB)\n`);&#xA;    process.stdout.write(`running for: ${downloadedMinutes.toFixed(2)}minutes`);&#xA;    process.stdout.write(`, estimated time left: ${estimatedDownloadTime.toFixed(2)}minutes `);&#xA;    readline.moveCursor(process.stdout, 0, -1);&#xA;  });&#xA;&#xA;&#xA;function merge(){&#xA;    ffmpeg()&#xA;    .input("./videotest.mp4") //your video file input path&#xA;    .input("./audiotest.mp3") //your audio file input path&#xA;    .output("./finished.mp4") //your output path&#xA;    .outputOptions([&#x27;-map 0:v&#x27;, &#x27;-map 1:a&#x27;, &#x27;-c:v copy&#x27;, &#x27;-shortest&#x27;])&#xA;    .on(&#x27;start&#x27;, (command) => {&#xA;      console.log(&#x27;TCL: command -> command&#x27;, command)&#xA;    })&#xA;    .on(&#x27;error&#x27;, (error) => console.log("errrrr",error))&#xA;    .on(&#x27;end&#x27;,()=>console.log("Completed"))&#xA;    .run()  &#xA;}&#xA;&#xA;video.on(&#x27;end&#x27;, () => {&#xA;  process.stdout.write(&#x27;\n\n&#x27;);&#xA;  merge();&#xA;});&#xA;&#xA;</name></url>

    &#xA;

    But even though the files are there ffmpeg throws me this error :&#xA;enter image description here

    &#xA;

    I also tried this in the video-end callback, because maybe the audio is finished downloading before the video, still doesn't work. I've also tried to rename the outputDirs for the files and keep the old files and rerun the script so the files are 100% there. Still doesn't work.

    &#xA;

    I have also tried absolute paths ("C :/..." also with backslash "C :\...") but I still get the error message that the input file path can't be empty.

    &#xA;

    Appreciate any piece of advise or help !

    &#xA;

  • Revision 31973 : Petite bourde : on ne peut importer aussi que s’il y a le plugin YAML. ...

    8 octobre 2009, par rastapopoulos@… — Log

    Petite bourde : on ne peut importer aussi que s’il y a le plugin YAML. Évidemment.