Recherche avancée

Médias (91)

Autres articles (101)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

Sur d’autres sites (8110)

  • HTML5 live streaming with alpha channel

    5 mars 2021, par air5

    We are trying to live stream a video file with alpha channel. Adaptive streaming would be great, but it's not a must. Streaming is pretty new territory for us.

    


    We found out that WebM (VP9) seems to be the only format in the web that supports alpha channel. We tried using the nginx-rtmp-module as streaming server (MPEG-DASH) and broadcast the file with ffmpeg. But the alpha channel was lost. Probably because RTMP required us to broadcast the video as a FLV which doesn't support alpha.

    


    Is anyone having experience in streaming rgba videos on the web ? Getting to know compatible commercial solutions would be interesting tee. My next approaches would be trying to use Icecast. There is not much information online but this article where streaming a webm directly seems to be possible.

    


  • Electron ffmpeg integration

    27 avril 2017, par Raider Dave

    I am in way over my head here. I am normally a coldfusion/javascript/jquery developer but now have taken on a task that assumes I know more than I do.

    I am trying to write an application in electron that will allow me to select a group of video files and convert them to mp4 files while also compressing them. The files are football plays and a normal game consists of about 160 plays and 18gb. We need to compress these down to about 4gb. I have used programs like Prism to do this, but the intended users are not technically savvy nor do they all have windows - some have Macs.

    I have an electron project that I have started and got the first part to work. I can start the app and select the input files. But I have tried all kinds of different solutions found online to call ffmpeg and pass it the parms to convert a file. Is there an easy way to call ffmpeg with parms and then wait for it to finish before continuing ?

    I am on Windows 10 but will also need to run on Apple OS. Please, if you have a simple example of how to do this, I would appreciate it.

    Thanks !
    Dave

  • Merge videos on computer automatically

    14 mai 2024, par Skyturkish

    I have some videos regularly downloaded to my computer, these are short videos, around 10-15 seconds each. I usually use https://online-video-cutter.com/merge-videos to merge them, and it serves my purpose well. I just drag and drop the videos I want and hit the download button without any additional steps.

    


    My goal is to automate this process, so I thought I could merge the videos locally on my computer using ffmpeg. I've tried with JavaScript libraries like ffmpeg-static and ffmpeg-fluent, but I couldn't get the desired result ; I keep encountering an error.

    


    What I want is automation of this process. How can I achieve this ? What can I use and how ? I attribute my inability to accomplish this to myself since what I want seems quite simple. Thank you in advance. Below, I'm leaving the JavaScript code I tried, but it gives me an error : 'ffmpeg exited with code 234 : Error opening output file ./merged-video.mp4. Error opening output files : Invalid argument.'

    


    The number of videos is not fixed ; if an example is needed, let's say the first 30 files under a folder.

    


    The videos are in mp4 format, and their frame sizes vary

    


    I don't have much knowledge about videos, but other things could be different too, not just the frame sizes. The website I shared above handles all of these somehow. It's a bit off-topic, but is it possible to learn how the process on the mentioned website works(look at the source code somehow, Idk) ?

    


    If there's any other way to automatically merge these videos, I would appreciate it if you could share it.

    


    const fs = require('fs')
const path = require('path')
const ffmpeg = require('fluent-ffmpeg')

function mergeVideos(folderPath, outputFile) {
  fs.readdir(folderPath, (err, files) => {
    if (err) {
      console.error('Error:', err)
      return
    }

    const videoFiles = files.filter((file) => {
      const ext = path.extname(file).toLowerCase()
      return ext === '.mp4'
    })

    const command = ffmpeg().outputOptions('-movflags frag_keyframe+empty_moov')
    videoFiles.forEach((file) => {
      command.input(path.join(folderPath, file))
    })

    command.on('error', (err) => {
      console.error('ffmpeg error:', err.message)
    })

    command.on('end', () => {
      console.log('merged')
    })

    command
      .complexFilter(
        '[0:v]scale=w=1920:h=1080:force_original_aspect_ratio=decrease[v0];[1:v]scale=w=1920:h=1080:force_original_aspect_ratio=decrease[v1];[v0][v1]hstack=inputs=2[v]'
      )
      .outputOptions('-map', '[v]')
    command.mergeToFile(outputFile, folderPath)
  })
}

const folderPath = '../../upload-videos/1/2'
const outputFile = './merged-video.mp4'
mergeVideos(folderPath, outputFile)