Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (28)

  • 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 ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

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

  • FFmpeg somehow set the udp speed ?

    19 juin 2018, par potu1304

    I wanted to nearly live stream my Unit game with FFmpeg to a simple client. I have one Unity game in which each frame is saved as an jpg image. These images are wrapped in ffmpeg and send over udp to a simple c# client where I use ffplay to play the stream. The problem is, that FFmpeg is wrapping the images way faster than the unity app can write them. So ffmpeg quits but Unity is still writing frames. Is there a way to set ffmpeg in a loop to wait for the next image or can I somehow make a for loop without call every time ffmpeg ?

    Here is my function from my capturing script in Unity :

    Process process;
       //BinaryWriter _stdin;
       public void encodeFrame()
       {


           ProcessStartInfo startInfo = new ProcessStartInfo();

           var basePath = Application.streamingAssetsPath + "/FFmpegOut/Windows/ffmpeg.exe";


           info.Arguments = "-re -i screen_%d.jpg -vcodec libx264 -r 24 -f mpegts udp://127.0.0.1:1100";
           info.RedirectStandardOutput = true;
           info.RedirectStandardInput = true;
           info.RedirectStandardError = true;
           info.CreateNoWindow = true;
           info.UseShellExecute = false;
           info.RedirectStandardError = true;
           UnityEngine.Debug.Log(string.Format(
               "Executing \"{0}\" with arguments \"{1}\".\r\n",
               info.FileName,
               info.Arguments));
           process = Process.Start(info);
           //_stdin = new BinaryWriter(process.StandardInput.BaseStream);
           process.WaitForExit();
           var outputReader = process.StandardError;
           string Error = outputReader.ReadToEnd();
           UnityEngine.Debug.Log(Error);

    }

    And here the function from my cs file from my simple windowsform application :

    private void xxxFFplay()
    {
       text = "start";
       byte[] send_buffer = Encoding.ASCII.GetBytes(text);
       sock.SendTo(send_buffer, endPoint);
       ffplay.StartInfo.FileName = "ffplay.exe";
       ffplay.StartInfo.Arguments = "udp://127.0.0.1:1100";
       ffplay.StartInfo.CreateNoWindow = true;
       ffplay.StartInfo.RedirectStandardOutput = true;
       ffplay.StartInfo.UseShellExecute = false;

       ffplay.EnableRaisingEvents = true;
       ffplay.OutputDataReceived += (o, e) => Debug.WriteLine(e.Data ?? "NULL", "ffplay");
       ffplay.ErrorDataReceived += (o, e) => Debug.WriteLine(e.Data ?? "NULL", "ffplay");
       ffplay.Exited += (o, e) => Debug.WriteLine("Exited", "ffplay");
       ffplay.Start();

       Thread.Sleep(500); // you need to wait/check the process started, then...

       // child, new parent
       // make 'this' the parent of ffmpeg (presuming you are in scope of a Form or Control)
       //SetParent(ffplay.MainWindowHandle, this.panel1.Handle);

       // window, x, y, width, height, repaint
       // move the ffplayer window to the top-left corner and set the size to 320x280
       //MoveWindow(ffplay.MainWindowHandle, -5, -300, 320, 280, true);

    }

    Does have somebody some ideas ? I am really stuck at this to create a somehow "live" stream.

    Best regards

  • How to send written frames in real time/synchronized with FFmpeg and UDP ?

    20 juin 2018, par potu1304

    I wanted to nearly live stream my Unit game with FFmpeg to a simple client. I have one Unity game in which each frame is saved as an jpg image. These images are wrapped in ffmpeg and send over udp to a simple c# client where I use ffplay to play the stream. The problem is, that FFmpeg is wrapping the images way faster than the unity app can write them. So ffmpeg quits but Unity is still writing frames. Is there a way to set ffmpeg in a loop to wait for the next image or can I somehow make a for loop without call every time ffmpeg ?

    Here is my function from my capturing script in Unity :

    Process process;
       //BinaryWriter _stdin;
       public void encodeFrame()
       {


           ProcessStartInfo startInfo = new ProcessStartInfo();

           var basePath = Application.streamingAssetsPath + "/FFmpegOut/Windows/ffmpeg.exe";


           info.Arguments = "-re -i screen_%d.jpg -vcodec libx264 -r 24 -f mpegts udp://127.0.0.1:1100";
           info.RedirectStandardOutput = true;
           info.RedirectStandardInput = true;
           info.RedirectStandardError = true;
           info.CreateNoWindow = true;
           info.UseShellExecute = false;
           info.RedirectStandardError = true;
           UnityEngine.Debug.Log(string.Format(
               "Executing \"{0}\" with arguments \"{1}\".\r\n",
               info.FileName,
               info.Arguments));
           process = Process.Start(info);
           //_stdin = new BinaryWriter(process.StandardInput.BaseStream);
           process.WaitForExit();
           var outputReader = process.StandardError;
           string Error = outputReader.ReadToEnd();
           UnityEngine.Debug.Log(Error);

    }

    And here the function from my cs file from my simple windowsform application :

    private void xxxFFplay()
    {
       text = "start";
       byte[] send_buffer = Encoding.ASCII.GetBytes(text);
       sock.SendTo(send_buffer, endPoint);
       ffplay.StartInfo.FileName = "ffplay.exe";
       ffplay.StartInfo.Arguments = "udp://127.0.0.1:1100";
       ffplay.StartInfo.CreateNoWindow = true;
       ffplay.StartInfo.RedirectStandardOutput = true;
       ffplay.StartInfo.UseShellExecute = false;

       ffplay.EnableRaisingEvents = true;
       ffplay.OutputDataReceived += (o, e) => Debug.WriteLine(e.Data ?? "NULL", "ffplay");
       ffplay.ErrorDataReceived += (o, e) => Debug.WriteLine(e.Data ?? "NULL", "ffplay");
       ffplay.Exited += (o, e) => Debug.WriteLine("Exited", "ffplay");
       ffplay.Start();

       Thread.Sleep(500); // you need to wait/check the process started, then...

       // child, new parent
       // make 'this' the parent of ffmpeg (presuming you are in scope of a Form or Control)
       //SetParent(ffplay.MainWindowHandle, this.panel1.Handle);

       // window, x, y, width, height, repaint
       // move the ffplayer window to the top-left corner and set the size to 320x280
       //MoveWindow(ffplay.MainWindowHandle, -5, -300, 320, 280, true);

    }

    Does have somebody some ideas ? I am really stuck at this to create a somehow "live" stream.

    Best regards

  • Download a stream via ffmpeg in Node.js

    16 juillet 2018, par loretoparisi

    I’m using ffmpeg to download an audio stream in Node.js. I use child_process for that :

    var downloadStream = function(uri,opath) {
       var self=this;

       // defaults
       var loglevel= self.logger.isDebug() ? 'debug' : 'warning';
       return new Promise((resolve, reject) => {
         const args = [
           '-y',
           '-loglevel', loglevel,
           '-v', 'quiet',
           '-i', uri,
           opath
         ];
         const opts = {
           cwd: self._options.tempDir
         };
         cp.spawn('ffmpeg', args, opts)
           .on('message', msg => self.logger.info(msg))
           .on('error', reject)
           .on('close', resolve)
           .on('exit', function (code, signal) {
             console.log('child process exited with ' +
                         `code ${code} and signal ${signal}`);
                         resolve(code);
           });
       });
     }//downloadStream

    What happens is that the close event is called before the file has been written to the disk. I have also registered the exit that is called with the close. While executing the command in bash I get the stream saved in the opath as expected. Which event listener shall I register for that ?