Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (73)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • 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

Sur d’autres sites (8607)

  • Unable to play video from firebase cloud storage download url on Iphone Safari [closed]

    26 janvier 2024, par Acid Coder
                        getDownloadURL(ref)
                        .then(url => {
                            //... save the url to state
                        })


    


    front end : React

    


                                &#xA;                                <source src="{videoURL}" type="video/mp4"></source>&#xA;                            &#xA;

    &#xA;

    work fine on PC and Android, but on Iphone Safari, only 1 out of 10 videos can be played

    &#xA;

    enter image description here

    &#xA;

    all video are from the same source, going through same compression, from mp4 to mp4

    &#xA;

    import ffmpeg from &#x27;fluent-ffmpeg&#x27;&#xA;&#xA;        ffmpeg(inputPath)&#xA;            .output(outputPath)&#xA;            .videoCodec(&#x27;libx264&#x27;)&#xA;            .audioCodec(&#x27;aac&#x27;)&#xA;            .on(&#x27;end&#x27;, () => {&#xA;                // ...&#xA;            })&#xA;            .on(&#x27;error&#x27;, err => {&#xA;                // ...&#xA;            })&#xA;            .run()&#xA;

    &#xA;

  • Ffmpeg convert mp3u8 to mp3, how to skip read mp3u8 segment quick download ? [closed]

    16 janvier 2024, par Raag Jatt
    &#xA;

    [hls,applehttp @ 0x21e3e80] Opening 'https://vodhlsgaana.akamaized.net/hls/98/6329098/47086991/320/hdntl=exp=1705512097~acl=%2f*~data=hdntl~hmac=766aac0bee539dc389ef0eef4979c2c982c341eaba85156b0264b1a26b3122f8/segment-86.ts' ; for reading&#xA;[hls,applehttp @ 0x21e3e80] Opening 'https://vodhlsgaana.akamaized.net/hls/98/6329098/47086991/320/hdntl=exp=1705512097~acl=%2f*~data=hdntl~hmac=766aac0bee539dc389ef0eef4979c2c982c341eaba85156b0264b1a26b3122f8/segment-87.ts' ; for reading&#xA;[hls,applehttp @ 0x21e3e80] Opening 'https://vodhlsgaana.akamaized.net/hls/98/6329098/47086991/320/hdntl=exp=1705512097~acl=%2f*~data=hdntl~hmac=766aac0bee539dc389ef0eef4979c2c982c341eaba85156b0264b1a26b3122f8/segment-88.ts' ; for reading&#xA;[hls,applehttp @ 0x21e3e80] Opening 'https://vodhlsgaana.akamaized.net/hls/98/6329098/47086991/320/hdntl=exp=1705512097~acl=%2f*~data=hdntl~hmac=766aac0bee539dc389ef0eef4979c2c982c341eaba85156b0264b1a26b3122f8/segment-89.ts' ; for reading&#xA;[hls,applehttp @ 0x21e3e80] Opening 'https://vodhlsgaana.akamaized.net/hls/98/6329098/47086991/320/hdntl=exp=1705512097~acl=%2f*~data=hdntl~hmac=766aac0bee539dc389ef0eef4979c2c982c341eaba85156b0264b1a26b3122f8/segment-90.ts' ; for reading&#xA;[hls,applehttp @ 0x21e3e80] Opening 'https://vodhlsgaana.akamaized.net/hls/98/6329098/47086991/320/hdntl=exp=1705512097~acl=%2f*~data=hdntl~hmac=766aac0bee539dc389ef0eef4979c2c982c341eaba85156b0264b1a26b3122f8/segment-91.ts' ; for reading&#xA;size= 8611kB time=00:09:11.08 bitrate= 128.0kbits/s speed=2.05x

    &#xA;

    i want to save quickly in my server how can i ?

    &#xA;

    &#xA;

  • Download youtube video as stream Readable object

    26 décembre 2023, par Abraam Emad

    in this function it download youtube video as a file out.mp4 on hard disk i need to download it as a Readable Object to upload it

    &#xA;

    private async downloadVideo(videoId: string) {&#xA;// Buildin with nodejs&#xA;const cp = require(&#x27;child_process&#x27;);&#xA;const readline = require(&#x27;readline&#x27;);&#xA;// External modules&#xA;const ytdl = require(&#x27;ytdl-core&#x27;);&#xA;const ffmpeg = require(&#x27;ffmpeg-static&#x27;);&#xA;// Global constants&#xA;const ref = `https://www.youtube.com/watch?v=${videoId}`;&#xA;const tracker = {&#xA;  start: Date.now(),&#xA;  audio: { downloaded: 0, total: Infinity },&#xA;  video: { downloaded: 0, total: Infinity },&#xA;  merged: { frame: 0, speed: &#x27;0x&#x27;, fps: 0 },&#xA;};&#xA;&#xA;// Get audio and video streams&#xA;const audio = ytdl(ref, { quality: &#x27;highestaudio&#x27; })&#xA;  .on(&#x27;progress&#x27;, (_, downloaded, total) => {&#xA;    tracker.audio = { downloaded, total };&#xA;  });&#xA;const video = ytdl(ref, { quality: &#x27;highestvideo&#x27; })&#xA;  .on(&#x27;progress&#x27;, (_, downloaded, total) => {&#xA;    tracker.video = { downloaded, total };&#xA;  });&#xA;&#xA;// Prepare the progress bar&#xA;let progressbarHandle = null;&#xA;const progressbarInterval = 1000;&#xA;const showProgress = () => {&#xA;  readline.cursorTo(process.stdout, 0);&#xA;  const toMB = i => (i / 1024 / 1024).toFixed(2);&#xA;&#xA;  process.stdout.write(`Audio  | ${(tracker.audio.downloaded / tracker.audio.total * 100).toFixed(2)}% processed `);&#xA;  process.stdout.write(`(${toMB(tracker.audio.downloaded)}MB of ${toMB(tracker.audio.total)}MB).${&#x27; &#x27;.repeat(10)}\n`);&#xA;&#xA;  process.stdout.write(`Video  | ${(tracker.video.downloaded / tracker.video.total * 100).toFixed(2)}% processed `);&#xA;  process.stdout.write(`(${toMB(tracker.video.downloaded)}MB of ${toMB(tracker.video.total)}MB).${&#x27; &#x27;.repeat(10)}\n`);&#xA;&#xA;  process.stdout.write(`Merged | processing frame ${tracker.merged.frame} `);&#xA;  process.stdout.write(`(at ${tracker.merged.fps} fps => ${tracker.merged.speed}).${&#x27; &#x27;.repeat(10)}\n`);&#xA;&#xA;  process.stdout.write(`running for: ${((Date.now() - tracker.start) / 1000 / 60).toFixed(2)} Minutes.`);&#xA;  readline.moveCursor(process.stdout, 0, -3);&#xA;};&#xA;&#xA;// Start the ffmpeg child process&#xA;const ffmpegProcess = cp.spawn(ffmpeg, [&#xA;  // Remove ffmpeg&#x27;s console spamming&#xA;  &#x27;-loglevel&#x27;, &#x27;8&#x27;, &#x27;-hide_banner&#x27;,&#xA;  // Redirect/Enable progress messages&#xA;  &#x27;-progress&#x27;, &#x27;pipe:3&#x27;,&#xA;  // Set inputs&#xA;  &#x27;-i&#x27;, &#x27;pipe:4&#x27;,&#xA;  &#x27;-i&#x27;, &#x27;pipe:5&#x27;,&#xA;  // Map audio &amp; video from streams&#xA;  &#x27;-map&#x27;, &#x27;0:a&#x27;,&#xA;  &#x27;-map&#x27;, &#x27;1:v&#x27;,&#xA;  // Keep encoding&#xA;  &#x27;-c:v&#x27;, &#x27;copy&#x27;,&#xA;  // Define output file&#xA;  &#x27;-f&#x27;, &#x27;mpegts&#x27;, // Use MPEG-TS format for streaming&#xA;  &#x27;out.mp4&#x27;&#xA;], {&#xA;  windowsHide: true,&#xA;  stdio: [&#xA;    /* Standard: stdin, stdout, stderr */&#xA;    &#x27;inherit&#x27;, &#x27;inherit&#x27;, &#x27;inherit&#x27;,&#xA;    /* Custom: pipe:3, pipe:4, pipe:5 */&#xA;    &#x27;pipe&#x27;, &#x27;pipe&#x27;, &#x27;pipe&#x27;,&#xA;  ],&#xA;});&#xA;ffmpegProcess.on(&#x27;close&#x27;, () => {&#xA;  console.log(&#x27;done&#x27;);&#xA;  // Cleanup&#xA;  process.stdout.write(&#x27;\n\n\n\n&#x27;);&#xA;  clearInterval(progressbarHandle);&#xA;});&#xA;// Link streams&#xA;// FFmpeg creates the transformer streams and we just have to insert / read data&#xA;ffmpegProcess.stdio[3].on(&#x27;data&#x27;, chunk => {&#xA;  // Start the progress bar&#xA;  if (!progressbarHandle) progressbarHandle = setInterval(showProgress, progressbarInterval);&#xA;  // Parse the param=value list returned by ffmpeg&#xA;  const lines = chunk.toString().trim().split(&#x27;\n&#x27;);&#xA;  const args: any = {};&#xA;  for (const l of lines) {&#xA;    const [key, value] = l.split(&#x27;=&#x27;);&#xA;    args[key.trim()] = value.trim();&#xA;  }&#xA;  tracker.merged = args;&#xA;});&#xA;audio.pipe(ffmpegProcess.stdio[4]);&#xA;video.pipe(ffmpegProcess.stdio[5]);&#xA;

    &#xA;

    }`

    &#xA;