Recherche avancée

Médias (1)

Mot : - Tags -/bug

Autres articles (44)

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

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (7722)

  • ffmpeg - convert video into individual frame image files ? [closed]

    2 janvier 2021, par MrFunreal

    i am trying to turn every single frame of a video file into png files using ffmpeg.
i have found several guides on how to do that, most of which look the same, by doing this :

    


    


    ffmpeg -i vid.mp4 frames/out%03d.png

    


    


    However, this does not work. FFmpeg for some reason just replaces the "%0" of the output file with the entire path of the bat file and then tells me that's wrong, like so :

    


    


    [image2 @ 000002c6aa87f680] Could not open file :
frames/outG :\Videos\vid_to_frames\3_video_to_frames.bat3d.jpg
av_interleaved_write_frame() : I/O error

    


    


    If i remove the "%0" of the output file it creates a single frame and gives me an error, telling me i need to put the "%03d" into the name, which doesn't work.

    


    


    [image2 @ 000001dc9a09fd40] Could not get frame filename number 2 from
pattern '$filename3d.png'. Use '-frames:v 1' for a single image, or
'-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame() : Invalid argument

    


    


    Is this just broken ?
I found about 20 guides on how to do it, all of which use this exact same method and it just doesn't work.

    


    Does anyone know another way to do this via ffmpeg ? (it must be via ffmpeg)

    


  • FFmpeg individual image zoom-in transition

    19 juillet 2024, par The Somebody

    I'm stuck with an ffmpeg command that needs to generate a video. Originally, I had an ffmpeg command that would loop through images and change after a certain amount of time. Now, to improve the video a little bit, I wish to add a zoom in effect on each image.

    


    I am facing an issue that when I generate the video, the images no longer change. That is, it is constantly first image. I can the zoom effect replay as it should (for every changing image), but the images do not actually change (it is always the first picture). Any advice/suggestion would be appreciated. I am sure, it will be something wrong with the syntax, but now I am at a loss..

    


    Original code, that works fine (without the zoom in) :

    


    ffmpeg -n -loop 1 -t 26.01 -i "\image_0.png" -loop 1 -t 26.01 -i "\image_1.png"
 -loop 1 -t 26.01 -i "\image_2.png" -loop 1 -t 26.01 -i "\image_3.png" 
 -i "/speech.mp3" 
 -filter_complex "[0:v]scale=1080x1920,setpts=PTS-STARTPTS[v0]; 
 [1:v]scale=1080x1920,setpts=PTS-STARTPTS[v1]; 
 [2:v]scale=1080x1920,setpts=PTS-STARTPTS[v2]; 
 [3:v]scale=1080x1920,setpts=PTS-STARTPTS[v3]; 
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,subtitles='"C\:/transcription.ass"'[v]" -map "[v]" -map 4:a -c:v libx264 -c:a aac -b:a 192k
 -shortest "C:\Videos/Video.mp4" -loglevel verbose


    


    Code that does not work as intended :

    


    ffmpeg -n -loop 1 -t 26.01 -i "\image_0.png" -loop 1 -t 26.01 -i "\image_1.png" -loop 1 -t 26.01 -i "\image_2.png" -loop 1 -t 26.01 -i "\image_3.png" -i "/speech.mp3" -filter_complex "[0:v]scale=1080x1920,zoompan=z='zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v0]; [1:v]scale=1080x1920,zoompan=z='zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v1]; [2:v]scale=1080x1920,zoompan=z='zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v2]; [1:v]scale=1080x1920,zoompan='z=zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v3]; [v0][v1][v2][v3]concat=n=4:v=1:a=0,subtitles='C\:/transcription.ass'[v]" -map "[v]" -map 4:a -c:v libx264 -c:a aac -b:a 192k -shortest "C:\Videos/Video.mp4" -loglevel verbose


    


    I tried to change and see if it really is just the first image that's used through out the video and confirmed it. Also tried to play around with the symbols '"', ' ' ', etc.

    


  • Extract individual frames from video and pipe them to StandardOutput in FFmpeg

    13 novembre 2019, par Nicke Manarin

    I’m trying to extract frames from a video using FFmpeg. But instead of letting FFmpeg write the files to disk, I’m trying to get the frames directly from StandardOutput.

    I’m not sure if it’s feasible. I’m expecting to get each frame individually as they get decoded by reading and waiting until all frames are extracted.

    With the current code, I think that I’m getting all frames at once.


    Command

    ffmpeg -i "C:\video.mp4" -r 30 -ss 00:00:10.000 -to 00:01:20.000 -hide_banner -c:v png -f image2pipe -

    Code

    var start = TimeSpan.FromMilliseconds(SelectionSlider.LowerValue);
    var end = TimeSpan.FromMilliseconds(SelectionSlider.UpperValue);

    var info = new ProcessStartInfo(UserSettings.All.FfmpegLocation)
    {
       Arguments = $" -i \"{VideoPath}\" -r {fps} -ss {start:hh\\:mm\\:ss\\.fff} " +
           "-to {end:hh\\:mm\\:ss\\.fff} -hide_banner -c:v png -f image2pipe -",
       CreateNoWindow = true,
       ErrorDialog = false,
       UseShellExecute = false,
       RedirectStandardError = true,
       RedirectStandardOutput = true
    };

    var process = new Process();
    process.StartInfo = info;
    process.Start();

    while (!process.StandardOutput.EndOfStream)
    {
       if (_cancelled)
       {
           process.Kill();
           return;
       }

       //This returns me the entire byte array, of all frames.
       var bytes = default(byte[]);
       using (var memstream = new MemoryStream())
       {
           process.StandardOutput.BaseStream.CopyTo(memstream);
           bytes = memstream.ToArray();
       }
    }

    I also tried to use process.BeginOutputReadLine() and wait for each frame in OutputDataReceived. But it returns parts of each frame, like the 10 first bytes, than other 50 bytes, it’s erratic.

    Is there any way to get the frames separately via the output stream ?