Recherche avancée

Médias (0)

Mot : - Tags -/clipboard

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (91)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

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

  • Can I use the file buffer or stream as input for fluent-ffmpeg ? I am trying to avoid saving the video locally to get its path before removing

    22 avril 2023, par Moath Thawahreh

    I am receiving the file via an api, I was trying to process the file.buffer as input for FFmpeg but it did not work, I had to save the video locally first and then process the path and remove the saved video later on.
I don't want to believe that there is no other way to solve this and I have been looking for solutions and workarounds but it was all about ffmpeg input as a path.

    


    I would love to find a solution using fluent-ffmpeg because it has some other great features, but I won't mind any suggestions for compressing the video using any different approaches if it's more efficient

    


    Again my code below works fine but I have to save the video and then remove it I am hoping for a more efficient solution :

    


      fs.writeFileSync(&#x27;temp.mp4&#x27;, file.buffer);&#xA;&#xA;    // Resize the temporary file using ffmpeg&#xA;    ffmpeg(&#x27;temp.mp4&#x27;) // here I tried pass file.buffer as readable stream,it receives paths only &#xA;      .format(&#x27;mp4&#x27;)&#xA;      .size(&#x27;50%&#x27;)&#xA;      .save(&#x27;resized.mp4&#x27;)&#xA;      .on(&#x27;end&#x27;, async () => {&#xA;        // Upload the resized file to Firebase&#xA;        const resizedFileStream = bucket.file(`video/${uniqueId}`).createWriteStream();&#xA;        fs.createReadStream(&#x27;resized.mp4&#x27;).pipe(resizedFileStream);&#xA;&#xA;        await new Promise<void>((resolve, reject) => {&#xA;          resizedFileStream&#xA;            .on(&#x27;finish&#x27;, () => {&#xA;              // Remove the local files after they have been uploaded&#xA;              fs.unlinkSync(&#x27;temp.mp4&#x27;);&#xA;              fs.unlinkSync(&#x27;resized.mp4&#x27;);&#xA;              resolve();&#xA;            })&#xA;            .on(&#x27;error&#x27;, reject);&#xA;        });&#xA;&#xA;        // Get the URL of the uploaded resized version&#xA;        const resizedFile = bucket.file(`video/${uniqueId}`);&#xA;        const url = await resizedFile.getSignedUrl({&#xA;          action: &#x27;read&#x27;,&#xA;          expires: &#x27;03-17-2025&#x27;, // Change this to a reasonable expiration date&#xA;        });&#xA;&#xA;        console.log(&#x27;Resized file uploaded successfully.&#x27;);&#xA;      })&#xA;      .on(&#x27;error&#x27;, (err) => {&#xA;        console.log(&#x27;An error occurred: &#x27; &#x2B; err.message);&#xA;      });&#xA;</void>

    &#xA;

  • It's possible to catch ffmpeg errors with python ?

    4 avril 2019, par Elros Romeo

    Hi I’m trying to make a video converter for django with python, I forked django-ffmpeg module which does almost everything I want, except that doesn’t catch error if conversion failed.

    Basically the module passes to the command line interface the ffmpeg command to make the conversion like this :

    /usr/bin/ffmpeg -hide_banner -nostats -i %(input_file)s -target
    film-dvd %(output_file)

    Module uses this method to pass the ffmpeg command to cli and get the output :

    def _cli(self, cmd, without_output=False):
       print 'cli'
       if os.name == 'posix':
           import commands
           return commands.getoutput(cmd)
       else:
           import subprocess
           if without_output:
               DEVNULL = open(os.devnull, 'wb')
               subprocess.Popen(cmd, stdout=DEVNULL, stderr=DEVNULL)
           else:
               p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
               return p.stdout.read()

    But for example, I you upload an corrupted video file it only returns the ffmpeg message printed on the cli, but nothing is triggered to know that something failed

    This is an ffmpeg sample output when conversion failed :

    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x237d500] Format mov,mp4,m4a,3gp,3g2,mj2
    detected only with low score of 1, misdetection possible !
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x237d500] moov atom not found
    /home/user/PycharmProjects/videotest/media/videos/orig/270f412927f3405aba041265725cdf6b.mp4 :
    Invalid data found when processing input

    I was wondering if there’s any way to make that an exception and how, so I can handle it easy.

    The only option that came to my mind is to search : "Invalid data found when processing input" in the cli output message string but I’m not shure that if this is the best approach. Anyone can help me and guide me with this please.

  • Doubts in the development of a music bot for discord, using DSharpPlus and ffmpeg

    21 avril 2018, par Vralago

    I have been making a bot for Discord, and recently I thought about adding the music system. Well I even understand how it works but also have some things that I’m not understanding how I should do it (I’m using the DiscordSharpPlus api), for example putting the music on pause (bearing in mind that ffmpeg continues to read the music).

    So I wanted to know if anyone can explain me or tell me how I should do it or how it works, given that it is my first time using ffmpeg and I do not know all the functions of the program.

    If it is necessary, there is the code where the ffmpeg is and the sending of data to the discord.

    public static async Task AddMusicFromYoutube(VoiceNextConnection vnc, CommandContext ctx, string url)
    {
       string fileName = "";

       if (url.ToLower().Contains("youtube.com"))
       {
           fileName = await DownloadFromYouTube(url);
           if (fileName == string.Empty) return;

           await ctx.RespondAsync($"Playing for **Youtube** -> `{url}`");
           await vnc.SendSpeakingAsync(true);

           var ffmpeg_pro = new ProcessStartInfo
           {
               FileName = "Libs/ffmpeg",
               Arguments = $@"-xerror -i ""{fileName}.mp3"" -ac 2 -f s16le -ar 48000 pipe:1",
               RedirectStandardOutput = true,
               UseShellExecute = false
           };
           var ffmpeg = Process.Start(ffmpeg_pro);

           Stream ffout = ffmpeg.StandardOutput.BaseStream;

           using (var ms = new MemoryStream())
           {
               await ffout.CopyToAsync(ms);
               ms.Position = 0;

               var buff = new byte[3840];
               var br = 0;
               while ((br = ms.Read(buff, 0, buff.Length)) > 0)
               {
                   if (br &lt; buff.Length)
                       for (var i = br; i &lt; buff.Length; i++)
                           buff[i] = 0;

                   await vnc.SendAsync(buff, 20); // Send PCM date for discord

                   //tentativa de parar a musica
                   if (Program.IsPuased)
                   {
                       while (Program.IsPuased)
                       {
                       }
                   }
               }

               ms.Close();
           }
           await vnc.SendSpeakingAsync(false);
       }
       else
       {
           await ctx.RespondAsync($"{ctx.Member.Mention}, por agora só aceito link's do Youtube!");
           return;
       }
    }