
Recherche avancée
Autres articles (35)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne 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 (...)
Sur d’autres sites (7018)
-
C# FFMPEG - How to get extracted frames without save in file system
4 janvier 2023, par kadamI need to process frames from video and live stream without saving into file system.


C# I am trying using below code, but not getting frames


Process proc = new Process();
 proc.StartInfo.FileName = @"E:\ffmpeg\bin\ffmpeg.exe";
 proc.StartInfo.Arguments = String.Format(@"-i E:\ffmpeg\bin\video.mp4 -f rawvideo pipe:1");
 proc.StartInfo.UseShellExecute = false;
 proc.StartInfo.RedirectStandardOutput = true;
 proc.Start();
proc.OutputDataReceived += (sender, args) => DataReceived(args);
 proc.ErrorDataReceived += (sender, args) => DataReceived(args);



I can get frames in nodejs successfully using below code



const spawnProcess = require('child_process').spawn
 ffmpeg = spawnProcess('E:\\ffmpeg\\bin\\ffmpeg.exe', [
 '-i', 'rtsp://username:password@192.168.6.37/ch1/main/sub-stream',
 '-vcodec', 'mjpeg','-vf','fps=2',
 '-f', 'rawvideo',
 //'-s', HW, // size of one frame
 'pipe:1'
 ]);
 ffmpeg.stderr.pipe(logStream);
 let frames = [];
 ffmpeg.stdout.pipe(new ExtractFrames("FFD8FF")).on('data', (data) => {
 var fName=new Date().getTime()+".png";
 (
 async () => await ProcessFrame(Buffer.from(data).toString('base64'))
 )();
 })



Same thing
await ProcessFrame(Buffer.from(data).toString('base64'))
I want in C#

-
The system cannot find the file specified error when trying to execute FFMpeg command with C# (same code works fine in a different app)
5 mars 2023, par m_krI know there are similar questions to this one. I have gone through every single one I could find and nothing worked for me. Here is my issue :


I am trying to execute a FFMpeg command in command-line through .NET.


Before anything I tried doing it with the following code :


public static string executeCommand(string commandToBeExecuted)
 {
 Process cmd = new Process();
 cmd.StartInfo.FileName = "cmd.exe";
 cmd.StartInfo.RedirectStandardInput = true;
 cmd.StartInfo.RedirectStandardOutput = true;
 cmd.StartInfo.CreateNoWindow = true;
 cmd.StartInfo.UseShellExecute = false;
 cmd.Start();

 cmd.StandardInput.WriteLine(commandToBeExecuted);
 cmd.StandardInput.Flush();
 cmd.StandardInput.Close();
 cmd.WaitForExit();
 return cmd.StandardOutput.ReadToEnd();
 }



Sending the "ffmpeg -h" command in commandToBeExecuted. This did not work.


I next tried the following solution :


public static string ffmpegCommand(string commandToBeExecuted)
 {
 ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.CreateNoWindow = false;
 startInfo.UseShellExecute = false;
 startInfo.FileName = "c:\\ffmpeg\\bin\\ffmpeg.exe";
 startInfo.WindowStyle = ProcessWindowStyle.Hidden;
 startInfo.Arguments = "-h";

 startInfo.RedirectStandardOutput = true;
 startInfo.RedirectStandardError = true;


 Process exeProcess = Process.Start(startInfo);

 // string error = exeProcess.StandardError.ReadToEnd();
 string output = exeProcess.StandardOutput.ReadToEnd();
 exeProcess.WaitForExit();
 return output;
 }



This returns the following error :




The system cannot find the file specified




I am assuming this is referring to this part of the code :


startInfo.FileName = "c:\\ffmpeg\\bin\\ffmpeg.exe";



However, I checked and this is the correct path to my ffmpeg.exe file. On an even weirder note, this code works correct when tested in a new .net console application. However, I am creating an extension for OutSystems in integration, and when testing this code there it no longer works. The long exception from the logs is the following :




CssbobffmpegCommandTestFolder
System.ComponentModel.Win32Exception : The system cannot find the file specified
at Object.s [as getException] (https://personal-jwy0bfog.outsystemscloud.com/FFMpegCommandGeneratorFFProbeVisual/scripts/OutSystems.js?RnlDcii3Xz75iIHHERIZtA:2:10241)
at c.onSuccess (https://personal-jwy0bfog.outsystemscloud.com/FFMpegCommandGeneratorFFProbeVisual/scripts/OutSystems.js?RnlDcii3Xz75iIHHERIZtA:3:7232)
at XMLHttpRequest. (https://personal-jwy0bfog.outsystemscloud.com/FFMpegCommandGeneratorFFProbeVisual/scripts/OutSystems.js?RnlDcii3Xz75iIHHERIZtA:3:2648)




I researched similar problems and tried the following solutions :


In place of :


startInfo.FileName = "c:\\ffmpeg\\bin\\ffmpeg.exe";



I tried :


startInfo.WorkingDirectory = "c:\\ffmpeg\\bin";
 startInfo.FileName = @"ffmpeg.exe";



I also tried changing the :


startInfo.Arguments = "-h";



to :


startInfo.Arguments = "/C -h";



I tried to "add new item" to my solution : the ffmpeg.exe file, and I tried the following logic :


public static string testingNewApproachTwoThree(string commandToBeExecuted)
 {
 string res;
 ProcessStartInfo startInfo = new ProcessStartInfo();

 startInfo.CreateNoWindow = false;
 startInfo.UseShellExecute = false;
 startInfo.FileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ffmpeg\\ffmpeg.exe");
 startInfo.Arguments = "-h";
 startInfo.RedirectStandardOutput = true;
 //startInfo.RedirectStandardError = true;

 res = string.Format(
 "Executing \"{0}\" with arguments \"{1}\".\r\n",
 startInfo.FileName,
 startInfo.Arguments) + " NEXT: ";

 try
 {
 using (Process process = Process.Start(startInfo))
 {
 while (!process.StandardOutput.EndOfStream)
 {
 res = res + process.StandardOutput.ReadLine();

 }

 process.WaitForExit();
 }
 }
 catch (Exception ex)
 {
 res = res + "exception:" + ex.Message;
 }

 return res;
 }



as suggested in a different question.


I tried changing the capitalization of letters in the specified filepath to make sure it matches the naming of my folders. Nothing worked.


Any ideas ?


-
nodejs fluent-ffmpeg split long file into multiple small files based on seconds given
9 mars 2023, par Mahesh DamaI want to split 10 minute audio mp3 file to 10 different 1 minute files using
fluent-ffmpeg
package innodejs
.
We can do this forffmpeg
package using the following command

ffmpeg -i file.wav -f segment -segment_time 60 -c copy parts/output%09d.wav



But I want the same functionality in
fluent-ffmpeg
fornodejs
. What is the name of the method ?

return ffmpeg(audioFile)
 .toFormat('wav')
 .audioChannels(1)
 .audioFrequency(44100)
 .audioBitrate('128')
 .on('error', (err) => {
 //error
 })
 .on('progress', (progress) => {
 //progress
 })
 .on('end', () => {
 // on complete
 })



I tried looking at documentation for the segment feature for
fluent-ffmpeg
but couldn't get any solution.