Recherche avancée

Médias (2)

Mot : - Tags -/plugins

Autres articles (48)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

Sur d’autres sites (8970)

  • avformat/dashdec : Support signaling of last segment number

    28 mars 2018, par sanilraut
    avformat/dashdec : Support signaling of last segment number
    

    Last segment indicated by mpd is not parsed.
    Example stream : http://dash.akamaized.net/dash264/TestCasesIOP41/LastSegmentNumber/1/manifest_last_segment_num.mpd

    This patch supports parsing of Supplemental Descriptor with @schemeIdUri set to http://dashif.org/guide-
    lines/last-segment-number with the @value set to the last segment number.

    Reviewed-by : Steven Liu <lq@onvideo.cn>

    • [DH] libavformat/dashdec.c
  • Xvfb records a black screen

    11 mai 2024, par Vivek

    I am trying a record a video by running xvfb inside a docker image. No matter what I do it gives me black screen.

    &#xA;

    Screen size same in xvfb and ffmpeg and puppeteer.

    &#xA;

    It will would really great if someone can help.

    &#xA;

    &#xA;start-xvfb.sh&#xA;---------------------------------------------------------------------&#xA;# Start Xvfb&#xA;Xvfb :99 -screen 0 1280x720x24 &amp;&#xA;&#xA;# Set the display environment variable&#xA;export DISPLAY=:99&#xA;&#xA;# Run the application (assuming it starts with npm start)&#xA;npm run dev&#xA;

    &#xA;

    Dockerfile

    &#xA;

    FROM node:lts-alpine3.19&#xA;&#xA;# Install dependencies using apk&#xA;RUN apk update &amp;&amp; \&#xA;    apk add --no-cache \&#xA;    gnupg \&#xA;    ffmpeg \&#xA;    libx11 \&#xA;    libxcomposite \&#xA;    libxdamage \&#xA;    libxi \&#xA;    libxtst \&#xA;    nss \&#xA;    cups-libs \&#xA;    libxrandr \&#xA;    alsa-lib \&#xA;    pango \&#xA;    gtk&#x2B;3.0 \&#xA;    xvfb \&#xA;    bash \&#xA;    curl \&#xA;    udev \&#xA;    ttf-freefont \&#xA;    chromium \&#xA;    chromium-chromedriver&#xA;&#xA;# Set working directory&#xA;WORKDIR /app&#xA;&#xA;# Copy package.json and install dependencies&#xA;COPY package.json .&#xA;RUN npm install --force&#xA;&#xA;# Copy remaining source code&#xA;COPY . .&#xA;&#xA;# Add a script to start Xvfb&#xA;COPY start-xvfb.sh /app/start-xvfb.sh&#xA;RUN chmod &#x2B;x /app/start-xvfb.sh&#xA;&#xA;# Expose the port&#xA;EXPOSE 4200&#xA;EXPOSE 3000&#xA;&#xA;# Command to start Xvfb and run the application&#xA;CMD ["./start-xvfb.sh"]&#xA;

    &#xA;

    Below

    &#xA;

    this is code code that launches puppeteer and from a nodejs application and create spawns a process for ffmpeg

    &#xA;

    export class UnixBrowserRecorder implements Recorder {&#xA;&#xA;  url = &#x27;https://stackoverflow.com/questions/3143698/uncaught-syntaxerror-unexpected-token&#x27;; // Replace with your URL&#xA;  outputFilePath = `/app/output_video.mp4`; // Output file path within the container&#xA;  durationInSeconds = 6; // Duration of the video in seconds&#xA;  resolution = &#x27;1280x720&#x27;;&#xA;&#xA;  public async capture(): Promise<string> {&#xA;    const browser = await puppeteer.launch({&#xA;      args: [&#xA;        &#x27;--no-sandbox&#x27;, // Required in Docker&#xA;        &#x27;--disable-setuid-sandbox&#x27;, // Required in Docker&#xA;        &#x27;--disable-dev-shm-usage&#x27;, // Required in Docker&#xA;        &#x27;--headless&#x27;, // Run browser in headless mode&#xA;        &#x27;--disable-gpu&#x27;, // Disable GPU acceleration&#xA;        `--window-size=${this.resolution}` // Set window size&#xA;      ],&#xA;      executablePath: &#x27;/usr/bin/chromium&#x27; // Specify the path to Chromium executable&#xA;    });&#xA;&#xA;    const page = await browser.newPage();&#xA;    await page.goto(this.url);&#xA;&#xA;    await page.screenshot({&#xA;      "type": "png", // can also be "jpeg" or "webp" (recommended)&#xA;      "path": `/app/screenshot.png`,  // where to save it&#xA;      "fullPage": true,  // will scroll down to capture everything if true&#xA;    });&#xA;&#xA;    //ffmpeg -video_size `DISPLAY=:5 xdpyinfo | grep &#x27;dimensions:&#x27;|awk &#x27;{print $2}&#x27;` -framerate 30 -f x11grab -i :5.0&#x2B;0,0 output.mpg&#xA;&#xA;    const ffmpegProcess = spawn(&#x27;ffmpeg&#x27;, [&#xA;      &#x27;-video_size&#x27;, this.resolution,&#xA;      &#x27;-framerate&#x27;, &#x27;30&#x27;,&#xA;      &#x27;-f&#x27;, &#x27;x11grab&#x27;,&#xA;      &#x27;-i&#x27;, &#x27;:99&#x27;, // Use display :99 (assuming Xvfb is running on this display)&#xA;      &#x27;-t&#x27;, this.durationInSeconds.toString(),&#xA;      &#x27;-c:v&#x27;, &#x27;libx264&#x27;,&#xA;      &#x27;-loglevel&#x27;, &#x27;debug&#x27;,&#xA;      &#x27;-pix_fmt&#x27;, &#x27;yuv420p&#x27;,&#xA;      this.outputFilePath&#xA;    ]);&#xA;&#xA;    // Log ffmpeg output&#xA;    ffmpegProcess.stdout.on(&#x27;data&#x27;, data => {&#xA;      console.log(`ffmpegProcess stdout: ${data}`);&#xA;    });&#xA;&#xA;    ffmpegProcess.stderr.on(&#x27;data&#x27;, data => {&#xA;      console.error(`ffmpegProcess stderr: ${data}`);&#xA;    });&#xA;&#xA;    // Handle ffmpegProcess process exit&#xA;    ffmpegProcess.on(&#x27;close&#x27;, code => {&#xA;      console.log(`ffmpeg process exited with code ${code}`);&#xA;    });&#xA;&#xA;    // Wait for the duration to complete&#xA;    await new Promise(resolve => setTimeout(resolve, this.durationInSeconds * 1000));&#xA;&#xA;    // Close the FFmpeg stream and process&#xA;    ffmpegProcess.stdin.end();&#xA;    // Close Puppeteer&#xA;    await page.close();&#xA;    await browser.close();&#xA;&#xA;    return "Video generated successfully";&#xA;  }&#xA;}&#xA;</string>

    &#xA;

    enter image description here

    &#xA;

  • ffmpeg command produces black image as output

    3 mars 2020, par Nishad DESHMUKH

    Input #0, video4linux2,v4l2, from ’/dev/video0’ :

    Duration : N/A, start : 13555.753906, bitrate : 147456 kb/s

    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc

    Stream mapping :

    Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))

    Press [q] to stop, [?] for help
    [swscaler @ 0x55fd0eafa3e0] deprecated pixel format used, make sure you did set range correctly
    Output #0, image2, to ’test1.jpeg’ :

    Metadata :

    encoder         : Lavf57.83.100

    Stream #0:0: Video: mjpeg, yuvj422p(pc), 640x480, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc

    Metadata:

     encoder         : Lavc57.107.100 mjpeg

    Side data:

     cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1

    frame= 1 fps=0.0 q=1.6 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=8.41x

    video:3kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : unknown