Recherche avancée

Médias (91)

Autres articles (78)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

Sur d’autres sites (8243)

  • 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;

  • Saving OpenCV output in Motion JPEG format. Getting a "'MJPG' is not supported with codec id 7" error

    23 novembre 2022, par portsample

    I'd like to save video camera output in motion JPEG (MJPG) format. The below code,

    &#xA;

    import cv2&#xA;import numpy as np&#xA;&#xA;cap = cv2.VideoCapture(0)&#xA;if (cap.isOpened() == False): &#xA;print("Unable to read camera feed")&#xA;frame_width = int(cap.get(3))&#xA;frame_height = int(cap.get(4))&#xA;frame_per_sec = int(&#x27;10&#x27;)&#xA;&#xA;out = cv2.VideoWriter(&#x27;output.mjpeg&#x27;,cv2.VideoWriter_fourcc(&#x27;M&#x27;,&#x27;J&#x27;,&#x27;P&#x27;,&#x27;G&#x27;),         (frame_per_sec), (frame_width,frame_height))&#xA;while(True):&#xA;ret, frame = cap.read()&#xA;if ret == True:      &#xA;# Write the frame into the file &#x27;output.mjpeg&#x27;&#xA;out.write(frame) &#xA;# Display the resulting frame    &#xA;cv2.imshow(&#x27;frame&#x27;,frame)&#xA;# Press Q on keyboard to stop recording&#xA;if cv2.waitKey(1) &amp; 0xFF == ord(&#x27;q&#x27;):&#xA;  break&#xA;else:&#xA;break &#xA;cap.release()&#xA;out.release()&#xA;cv2.destroyAllWindows()&#xA;

    &#xA;

    While it will run, I am getting the following error(s),

    &#xA;

    [ WARN:0] OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1&#xA;OpenCV: FFMPEG: tag 0x67706a6d/&#x27;mjpg&#x27; is not supported with codec id 7 and format &#x27;mjpeg / raw MJPEG video&#x27;&#xA;

    &#xA;

    What can I do to resolve these ? I've tried changing the case, ('M','J','P','G' to 'm','j','p','g') with no success.&#xA;Appreciate any suggestions regarding resolving the above issue, as well as the GStreamer issue. Thanks in advance.

    &#xA;

  • lavu/pixdesc : handle xv30be in av_[read|write]_image_line

    4 décembre 2022, par Philip Langdale
    lavu/pixdesc : handle xv30be in av_read_image_line
    

    xv30be is an obnoxious format that I shouldn't have included in the
    first place. xv30 packs 3 10bit channels into 32bits and while our
    byte-oriented logic can handle Little Endian correctly, it cannot
    handle Big Endian. To avoid that, I marked xv30be as a bitstream
    format, but while that didn't produce FATE errors, it turns out that
    the existing read/write code silently produces incorrect results, which
    can be revealed via ubsan.

    In all likelyhood, the correct fix here is to remove the format. As
    this format is only used by Intel vaapi, it's only going to show up
    in LE form, so we could just drop the BE version. But I don't want to
    deal with creating a hole in the pixfmt list and all the weirdness that
    comes from that. Instead, I decided to write the correct read/write
    code for it.

    And that code isn't too bad, as long as it's specialised for this
    format, as the channels are all bit-aligned inside a 32bit word.

    • [DH] libavutil/pixdesc.c