Recherche avancée

Médias (1)

Mot : - Tags -/book

Autres articles (47)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (8838)

  • Révision 73219 : Reparer l’affichage du detail d’un plugin : il faut faire un ajaxReload sur tout...

    3 juin 2013, par cedric@yterium.com

    On utilise jQuery.on() pour faire de la delegation d’event au passage

  • avformat/utils : avformat_find_stream_info set value for ret in case of oom

    10 juillet 2013, par Piotr Bandurski
    avformat/utils : avformat_find_stream_info set value for ret in case of oom
    

    without it FFmpeg didn’t display any error message when oom event occured

    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavformat/utils.c
  • Trying to redirect binary stdout of ffmpeg to NeroAacEnc stdin

    2 mai 2017, par Ben

    I am trying to write a program in C# 2010 that converts mp3 files to an audio book in m4a format via ffmpeg.exe and NeroAACenc.exe.
    For doing so I redirect stdout of ffmpeg to stdin of the Nero encoder within my application using the build in Diagnostics.Process class.

    Everything seems to work as expected but for some reason StandardOutput.BaseStream
    of ffmpeg stops receiving data at some time. The process does not exit and the ErrorDataReceived event is also not getting raised.
    The produced output m4a file has always a length of 2 minutes. The same applies if I just encode the mp3 file to a temp wav file without feeding Nero.

    I tried the same via the command line and this works without any problem.

    ffmpeg -i test.mp3 -f wav - | neroAacEnc -ignorelength -if - -of test.m4a

    Can anyone please tell me what I am doing wrong here ?
    Thanks in advance.

    class Encoder
    {
       private byte[] ReadBuffer = new byte[4096];
       private Process ffMpegDecoder = new Process();
       private Process NeroEncoder = new Process();
       private BinaryWriter NeroInput;

       //Create WAV temp file for testing
       private Stream s = new FileStream("D:\\test\\test.wav", FileMode.Create);
       private BinaryWriter outfile;

       public void Encode()
       {
           ProcessStartInfo ffMpegPSI = new ProcessStartInfo("ffmpeg.exe", "-i D:\\test\\test.mp3 -f wav -");
           ffMpegPSI.UseShellExecute = false;
           ffMpegPSI.CreateNoWindow = true;
           ffMpegPSI.RedirectStandardOutput = true;
           ffMpegPSI.RedirectStandardError = true;
           ffMpegDecoder.StartInfo = ffMpegPSI;

           ProcessStartInfo NeroPSI = new ProcessStartInfo("neroAacEnc.exe", "-if - -ignorelength -of D:\\test\\test.m4a");
           NeroPSI.UseShellExecute = false;
           NeroPSI.CreateNoWindow = true;
           NeroPSI.RedirectStandardInput = true;
           NeroPSI.RedirectStandardError = true;
           NeroEncoder.StartInfo = NeroPSI;

           ffMpegDecoder.Exited += new EventHandler(ffMpegDecoder_Exited);
           ffMpegDecoder.ErrorDataReceived += new DataReceivedEventHandler(ffMpegDecoder_ErrorDataReceived);
           ffMpegDecoder.Start();

           NeroEncoder.Start();
           NeroInput = new BinaryWriter(NeroEncoder.StandardInput.BaseStream);

           outfile = new BinaryWriter(s);

           ffMpegDecoder.StandardOutput.BaseStream.BeginRead(ReadBuffer, 0, ReadBuffer.Length, new AsyncCallback(ReadCallBack), null);

       }

       private void ReadCallBack(IAsyncResult asyncResult)
       {
           int read = ffMpegDecoder.StandardOutput.BaseStream.EndRead(asyncResult);
           if (read > 0)
           {

               NeroInput.Write(ReadBuffer);
               NeroInput.Flush();

               outfile.Write(ReadBuffer);
               outfile.Flush();

               ffMpegDecoder.StandardOutput.BaseStream.Flush();

               ffMpegDecoder.StandardOutput.BaseStream.BeginRead(ReadBuffer, 0, ReadBuffer.Length, new AsyncCallback(ReadCallBack), null);
           }
           else
           {
               ffMpegDecoder.StandardOutput.BaseStream.Close();
               outfile.Close();
           }

       }

       private void ffMpegDecoder_Exited(object sender, System.EventArgs e)
       {
           Console.WriteLine("Exit");
       }

       private void ffMpegDecoder_ErrorDataReceived(object sender, DataReceivedEventArgs errLine)
       {
           Console.WriteLine("Error");
       }

    }