
Recherche avancée
Autres articles (101)
-
Qualité du média après traitement
21 juin 2013, parLe bon réglage du logiciel qui traite les média est important pour un équilibre entre les partis ( bande passante de l’hébergeur, qualité du média pour le rédacteur et le visiteur, accessibilité pour le visiteur ). Comment régler la qualité de son média ?
Plus la qualité du média est importante, plus la bande passante sera utilisée. Le visiteur avec une connexion internet à petit débit devra attendre plus longtemps. Inversement plus, la qualité du média est pauvre et donc le média devient dégradé voire (...) -
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...) -
Prérequis à l’installation
31 janvier 2010, parPréambule
Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
Il (...)
Sur d’autres sites (7655)
-
C# FFMPEG : Code bugs out and stops producing media files
24 mai 2020, par HamezI've made a joke program in C# that uses ffmpeg to edit videos with different effects such as stuttering. I've finished 3 effects so far and each of them work on their own but as soon as I put one after another
e.g. fx.CrashStutter(0, 2); fx.CrashBeep(2, 2); fx.Wow(4, 2);

The code breaks and no longer produces photo/video files but once I stop debugging the file it was supposed to be processing appears. I've used a system where it loops over trying to execute a command to create a text file as a marker for when ffmpeg is done processing a file. The debug console also repeatedly says "The process tried to write to a nonexistent pipe."


Here's the code for all 3 effects :



public void Wow(double start, double duration)
 {
 if (fxstart == true)
 {
 //MessageBox.Show("WowFX Duration" + duration);
 string folderName = ("W_s" + start);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("mkdir " + folderName);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cd " + folderName);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("ffmpeg -ss " + start + " -t " + (duration / 6) + " -i " + source + " a.mp4");
 //wait until a.mp4 appears
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\a.txt") == false)
 {
 /*aha got a live one!*/FXcmd.StandardInput.WriteLine(" echo a > a.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -i a.mp4 -vf reverse -af areverse b.mp4");
 //wait until b.mp4 appears
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\b.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo b > b.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -ss " + start + " -t " + (duration / 3) + " -i " + source + " c.mp4");
 //wait until c.mp4 appears
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\c.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo c > c.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -i c.mp4 -vf reverse -af areverse d.mp4");
 //wait until d.mp4 appears
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\d.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo d > d.txt");
 System.Threading.Thread.Sleep(1500);
 }
 string[] concatList = { "file 'a.mp4'", "file 'b.mp4'", "file 'c.mp4'", "file 'd.mp4'" };
 //FXcmd.StandardInput.Write("del a.txt, b.txt, c.txt, d.txt");
 //System.Threading.Thread.Sleep(1000);
 System.IO.File.WriteAllLines(("FxSource(Temporary)\\" + folderName + "\\concatList.txt"), concatList);
 System.Threading.Thread.Sleep(1500);
 FXcmd.StandardInput.WriteLine("ffmpeg -f concat -i concatList.txt -c copy " + folderName + ".mp4");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\" + "1.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo 1 > 1.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("copy " + folderName + ".mp4 ..");
 while (File.Exists("FxSource(Temporary)\\" + folderName + ".mp4") == false)
 {
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("cd ..");
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cls");
 FXcmd.StandardInput.Flush();
 }
 }
 public void CrashStutter(int start, int duration)
 {
 if (fxstart == true)
 {
 string folderName = ("Cs_s" + start);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("mkdir " + folderName);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cd " + folderName);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("ffmpeg -ss " + start + " -t 0.1" + " -i " + source + " a.mp4");
 System.Threading.Thread.Sleep(100);
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\a.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo a > a.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -stream_loop "+10*duration+" -i a.mp4 "+folderName+".mp4");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\" + "1.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo 1 > 1.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("copy " + folderName + ".mp4 ..");
 while (File.Exists("FxSource(Temporary)\\" + folderName + ".mp4") == false)
 {
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("cd ..");
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cls");
 FXcmd.StandardInput.Flush();
 }
 }
 public void CrashBeep(int start, int duration)
 {
 //this effect cannot last longer than 7 seconds
 double contrast = 25;
 double red = 0.75;
 if (fxstart == true)
 {
 string folderName = ("Cb_s" + start);
 FXcmd.StandardInput.WriteLine("mkdir " + folderName);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cd " + folderName);
 System.Threading.Thread.Sleep(100);
 /*gets stuck*/FXcmd.StandardInput.WriteLine("ffmpeg -i "+source+ " -vf fps=1 a.jpg");
 System.Threading.Thread.Sleep(100);
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\a.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo a > a.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -i a.jpg -vf eq=contrast="+contrast+" b.jpg");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\b.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo b > b.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -i b.jpg -vf colorbalance=rm=" + red + " c.jpg");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\c.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo > c.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -loop 1 -i c.jpg -c:v libx264 -t "+ duration +" -pix_fmt yuv420p -vf scale=1920:1080 d.mp4");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\d.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo d > d.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("cd ..");
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("copy beep.mp3 "+folderName+"/beep.mp3");
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cd "+folderName);
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("ffmpeg -i beep.mp3 -ss 0 -t " + duration + " e.mp3");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\e.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo e > e.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("ffmpeg -i d.mp4 -i e.mp3 -c copy -map 0:v:0 -map 1:a:0 " + folderName + ".mp4");
 while (File.Exists("FxSource(Temporary)\\" + folderName + "\\" + "1.txt") == false)
 {
 FXcmd.StandardInput.WriteLine(" echo 1 > 1.txt");
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("copy " + folderName + ".mp4 ..");
 while (File.Exists("FxSource(Temporary)\\" + folderName + ".mp4") == false)
 {
 System.Threading.Thread.Sleep(1500);
 }
 FXcmd.StandardInput.WriteLine("cd ..");
 System.Threading.Thread.Sleep(100);
 FXcmd.StandardInput.WriteLine("cls");
 FXcmd.StandardInput.Flush();
 }
 }




Any suggestions ? Thanks !


-
Use CSS media queries to define file name display.
22 mai 2020, par blueimpUse CSS media queries to define file name display.
Improve responsive table layout.
-
Node Media Server not streaming when I change ffmpeg argv
30 mai 2020, par joao.jlf4I'm trying to change the ffmpeg spawn argv on Node Relay Session but it does'nt work beacuse node media server finishes the stream, my argv array :



let argv = [
 '-fflags', 
 'nobuffer', 
 '-i', 
 this.conf.inPath, 
 '-b:v',
 '2000k',
 '-b:a',
 '128k',
 '-c:v',
 'libx264',
 '-preset veryfast',
 // '-c', 
 // 'copy', 
 '-f', 
 format, 
 this.conf.ouPath];