Recherche avancée

Médias (2)

Mot : - Tags -/doc2img

Autres articles (50)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

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

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

Sur d’autres sites (7106)

  • ffmpeg not available on Oracle Linux 9 update 3 [closed]

    19 janvier 2024, par Red Cricket

    I cannot figure out how to install ffmpeg on a Oracle Linux 9 update 3 (RHCK).

    


    [root@snc-ol93-rhck ~]# dnf install ffmpeg-free
Last metadata expiration check: 0:14:16 ago on Wed 17 Jan 2024 04:48:34 PM UTC.
Error:
 Problem: package ffmpeg-free-5.1.4-2.el9.x86_64 from ol9_developer_EPEL requires libavfilter.so.8()(64bit), but none of the providers can be installed
  - package ffmpeg-free-5.1.4-2.el9.x86_64 from ol9_developer_EPEL requires libavfilter.so.8(LIBAVFILTER_8)(64bit), but none of the providers can be installed
  - package libavfilter-free-5.1.3-1.el9.x86_64 from ol9_developer_EPEL requires librubberband.so.2()(64bit), but none of the providers can be installed
  - package libavfilter-free-5.1.4-1.el9.x86_64 from ol9_developer_EPEL requires librubberband.so.2()(64bit), but none of the providers can be installed
  - package libavfilter-free-5.1.4-2.el9.x86_64 from ol9_developer_EPEL requires librubberband.so.2()(64bit), but none of the providers can be installed
  - cannot install the best candidate for the job
  - nothing provides ladspa needed by rubberband-2.0.1-1.el9.x86_64 from ol9_developer_EPEL
  - nothing provides ladspa needed by rubberband-3.1.0-2.el9.x86_64 from ol9_developer_EPEL
  - nothing provides ladspa needed by rubberband-3.1.3-1.el9.x86_64 from ol9_developer_EPEL
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)


    


    Turns out I needed to install the repo like so in my ansible playbook

    


    dnf install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm


    


  • ffmpeg chains parameters and options while being used in a loop

    10 janvier 2024, par Simon Nazarenko

    I got a code that generates videos from scratch (got gifs, captions and audio). It works amazing when done once, however, when put in a loop and it should create more than 1 video it freezes being caused by memory leak. Upon investigation I realized that ffmpeg (v1.1.0) chains the loop iterations carrying the parameters and options from the first iteration to the second. It then breaks (overwrites) the first video and infinitely writes the second.

    


    This is my dependency

    


    const ffmpeg = require("fluent-ffmpeg")()
  .setFfprobePath(ffprobe.path)
  .setFfmpegPath(ffmpegInstaller.path)


    


    It looks like this

    


    async function convertGifToVideo(
  gifFile,
  audioFile,
  subtitlesFile,
  tempDirectory
) {
  return new Promise((resolve, reject) => {
    const outputFile = `${tempDirectory}/video_${Date.now()}.mp4`
    
    ffmpeg
      .input(gifFile)
      .inputFormat("gif")
      .inputOptions("-stream_loop -1")
      .input(audioFile)
      .outputOptions("-shortest")
      .outputOptions(`-vf subtitles=${subtitlesFile}`)
      .outputOptions("-report")
      .output(outputFile)
      .on("end", () => {
        console.log(`Combined ${gifFile} and ${audioFile} into ${outputFile}`)
        resolve(outputFile)
      })
      .on("error", (err, stdout, stderr) => {
        console.error("Error combining GIF and audio:", err)
        console.error("ffmpeg stdout:", stdout)
        console.error("ffmpeg stderr:", stderr)
        reject(err)
      })
      .run()
  })
}


    


    And it's called in a loop

    


    for (const key in script) {
    if (script.hasOwnProperty(key)) {
      ...stuff

      const videoFileName = await convertGifToVideo(
        gifFileName,
        audioFileName,
        subtitlesFileName,
        tempDirectory
      )
    }
  }


    


    Here is a piece of log from the first video generation

    


    


    ffmpeg started on 2024-01-10 at 02:58:52
Report written to "ffmpeg-20240110-025852.log"
Command line :
/home/simon/Documents/AFYTUBE/node_modules/@ffmpeg-installer/linux-x64/ffmpeg -f gif -stream_loop -1 -i ./temp/gif_funny_frogs.gif -i ./temp/funny_frogs.mp3 -y -shortest -vf "subtitles=./temp/funny_frogs.srt" -report ./temp/video_1704880732780.mp4

    


    


    Here is a piece of log from the second one

    


    


    /home/simon/Documents/AFYTUBE/node_modules/@ffmpeg-installer/linux-x64/ffmpeg -f gif -stream_loop -1 -i ./temp/gif_funny_frogs.gif -i ./temp/funny_frogs.mp3 -f gif -stream_loop -1 -i ./temp/gif_leg_exercises.gif -i ./temp/leg_exercises.mp3 -y -shortest -vf "subtitles=./temp/funny_frogs.srt" -report -shortest -vf "subtitles=./temp/leg_exercises.srt" -report ./temp/video_1704880732780.mp4 ./temp/video_1704880750879.mp4

    


    


    Any ideas what I am doing wrong ?

    


  • FFMPEG - copy the SPECIFED tracks only, ignore all others

    10 janvier 2024, par GDP

    I have some very strange MP4 files that we get regularly for processing created by Wowza. Neither FFMPEG or MEDIAINFO can detect that there are subtitles soft-coded in them, but they ARE there, I can extract them with ccextractor, and when they're played, the captions appear later in the video where the actually start in the timeline.

    


    I've tried every variation of copying with/without re-encoding, but all the answers show how to "omit" the subtitles with -sn such as these :

    


     ffmpeg -i 3078.mp4 -c copy -sn 3078_sn.mp4
 ffmpeg -i 3078.mp4 -c:v libx264 -c:a ac3 -map 0:v:0 -map 0:a:1 3078_sn.mp4
 ffmpeg -i 3078.mp4 -map 0:v:0 -map 0:a:0  -map -0:s -map -0:d  -c copy 3078_sn2.mp4 -y


    


    FFprobe :

    


    ffprobe 3078.mp4 -hide_banner
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001ef2bcd9e00] multiple fourcc not supported
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '3078.mp4':
  Metadata:
    major_brand     : f4v
    minor_version   : 0
    compatible_brands: isommp42m4v
    creation_time   : 2024-01-09T19:59:28.000000Z
  Duration: 02:17:18.47, start: 0.000000, bitrate: 2165 kb/s
  Stream #0:0[0x1](eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1902 kb/s, 29.96 fps, 29.97 tbr, 90k tbn (default)
    Metadata:
     creation_time   : 2024-01-09T19:59:28.000000Z
     handler_name    : WowzaStreamingEngine
     vendor_id       : [0][0][0][0]
     encoder         : WowzaStreamingEngine
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 257 kb/s (default)
    Metadata:
     creation_time   : 2024-01-09T19:59:28.000000Z
     handler_name    : WowzaStreamingEngine
     vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Data: none (amf0 / 0x30666D61), 1 kb/s (default)
    Metadata:
     creation_time   : 2024-01-09T19:59:28.000000Z
     handler_name    : WowzaStreamingEngine
Unsupported codec with id 0 for input stream 2


    


    The problem seems to be that FFMPEG isn't detecting they're there, and so copies them anyways. My assumption is that they're not stored in the header of the MP4 properly (or however that's done), so get because they're later detect, but weren't omitted when it checked the header (pure guesswork on that).

    


    So, is there a way to copy ONLY the video, regardless of whatEVER tracks may or not be in the file, then do the same for audio, and then merge the two single-track files ?