Recherche avancée

Médias (91)

Autres articles (81)

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

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

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

Sur d’autres sites (11067)

  • lavc/vc1dsp : fuse multiply-adds in R-V V inv_trans_8

    30 juin 2024, par Rémi Denis-Courmont
    lavc/vc1dsp : fuse multiply-adds in R-V V inv_trans_8
    

    T-Head C908 (cycles) before after
    vc1dsp.vc1_inv_trans_4x8_rvv_i32 : 240.0 228.0
    vc1dsp.vc1_inv_trans_8x4_rvv_i32 : 235.2 224.2
    vc1dsp.vc1_inv_trans_8x8_rvv_i32 : 340.7 327.2

    • [DH] libavcodec/riscv/vc1dsp_rvv.S
  • lavc/vc1dsp : fuse multiply-adds in R-V V inv_trans_4

    30 juin 2024, par Rémi Denis-Courmont
    lavc/vc1dsp : fuse multiply-adds in R-V V inv_trans_4
    

    T-Head C908 (cycles) : before after
    vc1dsp.vc1_inv_trans_4x4_rvv_i32 : 128.0 120.0
    vc1dsp.vc1_inv_trans_4x8_rvv_i32 : 244.0 240.0
    vc1dsp.vc1_inv_trans_8x4_rvv_i32 : 239.2 235.2

    • [DH] libavcodec/riscv/vc1dsp_rvv.S
  • Not getting partial video content while using ffmpeg

    1er mai 2023, par MI Sabic

    I'm trying to partially send a video using nodejs and fluent-ffmpeg. But it's failing to send the data.

    


    When I send the video using only fs module only, it works fine. Here's the code.

    


    const express = require("express");
const app = express();  
const fs = require("fs");

const VIDEO_PATH = 'video.mp4';

app.get("/", (req, res) => {
  res.sendFile(__dirname + "/index.html");
})

app.get("/video", (req, res) => {
  const range = req.headers.range;
  if(!range) {
    res.status(400).send("Requires range header!");
  }

  const size = fs.statSync(VIDEO_PATH).size;
  const CHUNK_SIZE = 10**6;
  const start = Number(range.replace(/\D/g, ""));
  const end = Math.min(start + CHUNK_SIZE, size - 1);

  const contentLength = end - start + 1;

  const headers = {
    "Content-Range": `bytes ${start}-${end}/${size}`,
    "Accept-Ranges": 'bytes',
    "Content-Length": contentLength, 
    "Content-Type": "video/mp4"
  }

  res.writeHead(206, headers);

  const videoStream = fs.createReadStream(VIDEO_PATH, {start, end});
  videoStream.pipe(res);
})

app.listen(3000, () => {
  console.log("Server is running on port: ", 3000);
})


    


    When I send the video after processing it using fluent-ffmpeg module, it doesn't work. I've simplified the code for understanding. Here's my code.

    


    const express = require("express");
const app = express();  
const fs = require("fs");
const ffmpegStatic = require('ffmpeg-static');
const ffmpeg = require('fluent-ffmpeg');

ffmpeg.setFfmpegPath(ffmpegStatic);

const VIDEO_PATH = 'video.mp4';

app.get("/", (req, res) => {
  res.sendFile(__dirname + "/index.html");
})

app.get("/video", (req, res) => {
  const range = req.headers.range;
  if(!range) {
    res.status(400).send("Requires range header!");
  }

  const size = fs.statSync(VIDEO_PATH).size;
  const CHUNK_SIZE = 10**6;
  const start = Number(range.replace(/\D/g, ""));
  const end = Math.min(start + CHUNK_SIZE, size - 1);

  const contentLength = end - start + 1;

  const headers = {
    "Content-Range": `bytes ${start}-${end}/${size}`,
    "Accept-Ranges": 'bytes',
    "Content-Length": contentLength, 
    "Content-Type": "video/mp4"
  }

  res.writeHead(206, headers);

  const videoStream = fs.createReadStream(VIDEO_PATH, {start, end});

  ffmpeg(videoStream)
    .outputOptions('-movflags frag_keyframe+empty_moov')
    .toFormat('mp4')
    .pipe(res);
})

app.listen(3000, () => {
  console.log("Server is running on port: ", 3000);
})


    


    My index.html

    


    &#xA;&#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;&#xA;  <video width="50%" controls="controls">&#xA;    <source src="/video" type="video/mp4">&#xA;  </source></video>&#xA;&#xA;&#xA;

    &#xA;

    Any help would be appreciated. Thanks in advance.

    &#xA;