
Recherche avancée
Autres articles (26)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains 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 ;
-
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...) -
Les vidéos
21 avril 2011, parComme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)
Sur d’autres sites (5866)
-
poll always return 0 on ff_poll_interrupt on avformat_open_input, while playing a rtsp authentication url [closed]
12 mars 2024, par CodeEaterI tried to play a rtsp authentication url on my personal player. The rtsp url format is rtsp ://user:pass@x.x.x.x/VideoString. VLC player can play this url but mine is not ok.


Specifically, on function bellow, ret always return 0 and the whole thread stuck at the loop.


static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout, AVIOInterruptCB *cb)
{
 int runs = timeout / POLLING_TIME;
 int ret = 0;

 do {
 if (ff_check_interrupt(cb))
 return AVERROR_EXIT;
 ret = poll(p, nfds, POLLING_TIME);
 if (ret != 0) {
 if (ret < 0) {
 ff_log_net_error(NULL, AV_LOG_ERROR, "ff_poll_interrupt");
 ret = ff_neterrno();
 }
 if (ret == AVERROR(EINTR))
 continue;
 break;
 }
 } while (timeout <= 0 || runs-- > 0);

 if (!ret) {
 av_log(NULL, AV_LOG_ERROR, "Error in ff_pool_interrupt, timeout = %d.\n", timeout);
 return AVERROR(ETIMEDOUT);
 }
 return ret;
}



Codes bellow are what I modified try to fix it . And now it will return "timeout" because "runs" works on ff_poll_interrupt.


...
av_dict_set(&mInputOpts, "buffer_size", "1024000", 0);
av_dict_set(&mInputOpts, "rtsp_transport", "tcp", 0);
av_dict_set(&mInputOpts,"stimeout","20*1000*1000",0);


int ret = avformat_open_input(&mCtx, filename, in_fmt, mInputOpts ? &mInputOpts : nullptr);
...



wireshack shows that only 3 messages occur during the whole process(filtered by specific ip), which occurs on "start_connect_attempt" called by ff_connect_parallel.




order is :


- 

- C to S
- S to C
- C to S








expected : 4.C to S(with options or describe)


if poll return normal, then 4.C to S(with options or describe) will execute on ff_rtsp_connect.


So my question is Why poll always return 0 on ff_poll_interrupt on avformat_open_input, while playing a rtsp authentication url ?


-
Adding FFMPEG support to Chromium Portable on Windows without recompiling
13 décembre 2023, par AshbyI am using Chromium portable on Windows recently.


I downloaded Chromium portable from chromium.org, finding it without FFMPEG support, which means playing media just not possible for some websites.


Is there a simple or a little complex hack or plugin or patches to make FFMPEG on Chromium portable from chromium.org work ? Thanks.


Due to personal reasons I am not intended to use Google Chrome for some months, due to its automatic updates something like Windows Update, making me annoyed.


On Linux, I know there is a package called
chromium-codecs-ffmpeg-extra
, which makes FFMPEG support possible. But I do NOT find something similar on Windows.

Recompiling Chromium costs hours and I just do not want to use some third-party Chromium releases due to security requests.


Years have gone and past questions years ago on stackflow just not cater my need today.


Thanks for your patience & understanding.


-
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 ?