Recherche avancée

Médias (0)

Mot : - Tags -/masques

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (78)

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

  • MediaSPIP en mode privé (Intranet)

    17 septembre 2013, par

    À partir de la version 0.3, un canal de MediaSPIP peut devenir privé, bloqué à toute personne non identifiée grâce au plugin "Intranet/extranet".
    Le plugin Intranet/extranet, lorsqu’il est activé, permet de bloquer l’accès au canal à tout visiteur non identifié, l’empêchant d’accéder au contenu en le redirigeant systématiquement vers le formulaire d’identification.
    Ce système peut être particulièrement utile pour certaines utilisations comme : Atelier de travail avec des enfants dont le contenu ne doit pas (...)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

Sur d’autres sites (11784)

  • concatdec : change data type to suppress warning about limited range of data type...

    17 décembre 2012, par Michael Niedermayer

    concatdec : change data type to suppress warning about limited range of data type...

  • Is it possible to save snapshots from multiple video streams using ffmpeg ?

    14 novembre 2023, par Haydn Morris

    I would like to periodically save a snapshot from a video stream using ffmpeg. This is is possible using the following command :

    


    ffmpeg -i [source] -r 0.2 -f image2 ./image-%04d.jpeg

    


    or the (rough) equivalent in ffmpge-python :

    


    ffmpeg.input(source, **inputArgs)
    .filter("fps", fps=1 / 5, round="up")
    .output("./image-%04d.jpeg")


    


    I would like to do this for N input streams simultaneously. So, I would be saving 1 frame every 5 seconds for each of the input streams. Is this possible using ffmpeg or ffmpeg-python ? I can't find any examples with multiple input streams.

    


    Just for some more information : the sources are all rtsp streams and N can be between 10 and 60. I also would like to limit the number of files on disk at any one time (similar to G-streamer's max-files property) but this is less important.

    


  • How to Save and Display a Video Simultaneously using C# Aforge.NET framework ?

    8 avril 2014, par Akshay

    I am able to display the video from my webcam or any other integrated device into a picturebox . Also i am able to Save the video into an avi file using FFMPEG DLL files.
    I want to do both things simultaneously ie Save the video in the avi file as well as at the same time display the live feed too.
    This is for a surveillance project where i want to monitor the live feed and save those too.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    using AForge.Video;
    using AForge.Video.DirectShow;
    using AForge.Video.FFMPEG;
    using AForge.Video.VFW;
    using System.Drawing.Imaging;
    using System.IO;

    namespace cam_aforge1
    {
    public partial class Form1 : Form
    {
       private bool DeviceExist = false;
       private FilterInfoCollection videoDevices;
       private VideoCaptureDevice videoSource = null;

       public Form1()
       {
           InitializeComponent();
       }

       private void getCamList()
       {
           try
           {
               videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
               comboBox1.Items.Clear();
               if (videoDevices.Count == 0)
                   throw new ApplicationException();

               DeviceExist = true;
               foreach (FilterInfo device in videoDevices)
               {
                   comboBox1.Items.Add(device.Name);
               }
               comboBox1.SelectedIndex = 0; //make dafault to first cam
           }
           catch (ApplicationException)
           {
               DeviceExist = false;
               comboBox1.Items.Add("No capture device on your system");
           }
       }

       private void rfsh_Click(object sender, EventArgs e)
       {
           getCamList();
       }

       private void start_Click(object sender, EventArgs e)
       {
           if (start.Text == "&Start")
           {
               if (DeviceExist)
               {
                   videoSource = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString);
                   videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
                   videoSource.NewFrame += new NewFrameEventHandler(video_NewFrameSave);
                   CloseVideoSource();
                   videoSource.DesiredFrameSize = new Size(160, 120);
                   //videoSource.DesiredFrameRate = 10;
                   videoSource.Start();
                   label2.Text = "Device running...";
                   start.Text = "&Stop";
                   timer1.Enabled = true;
               }
               else
               {
                   label2.Text = "Error: No Device selected.";
               }
           }
           else
           {
               if (videoSource.IsRunning)
               {
                   timer1.Enabled = false;
                   CloseVideoSource();
                   label2.Text = "Device stopped.";
                   start.Text = "&Start";                    
               }
           }
       }
       private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
       {
           Bitmap img = (Bitmap)eventArgs.Frame.Clone();
           pictureBox1.Image = img;
       }

       Bitmap imgsave;
       private void video_NewFrameSave(object sender, NewFrameEventArgs eventArgs)
       {
           imgsave = (Bitmap)eventArgs.Frame.Clone();
       }

       private void CloseVideoSource()
       {
           if (!(videoSource == null))
               if (videoSource.IsRunning)
               {
                   videoSource.SignalToStop();
                   videoSource = null;
               }
       }

       private void timer1_Tick(object sender, EventArgs e)
       {
           label2.Text = "Device running... " + videoSource.FramesReceived.ToString() + " FPS";
       }

       private void Form1_FormClosed(object sender, FormClosedEventArgs e)
       {
           CloseVideoSource();
       }

       private void Form1_Load(object sender, EventArgs e)
       {

       }

       VideoFileWriter writer;

       private void button1_Click(object sender, EventArgs e)
       {
           int width = 640;
           int height = 480;
           writer = new VideoFileWriter();
           writer.Open("test.avi", width, height, 75, VideoCodec.MPEG4);
           for (int i = 0; i < 5000; i++)
           {
               writer.WriteVideoFrame(imgsave);
           }

       }

       private void button2_Click(object sender, EventArgs e)
       {
           writer.Close();
       }

    }
    }

    Thanks in advance.