Recherche avancée

Médias (2)

Mot : - Tags -/map

Autres articles (81)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains 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 ;

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (12108)

  • C# Bitmap to AVI / WMV with Compression

    5 juillet 2019, par Digitalsa1nt

    Prelude :

    I’m going to preface this with, I have been learning C# in my spare time at work, and that I have been staring at code for a solid two days trying to wrap my head around this problem. I am developing some software to be used with a visualiser that connects by USB to a standard Desktop PC, the software detects the capture device and loads frames into bitmap using a New Frame Event, this is then displayed in a ’picture box’ as a live video stream. The problem as it sits is trying to encorporate the ability to record the stream and save to file, preferably a WMV or a compressed AVI.

    What’s been tried :

    I have considered and looked into the following :

    SharpAVI - cant seem to get this to compress or save the frames properly as it appears to mainly look at existing AVI files.

    AForge.Video.VFW - AVI files can be created but are far too large to be used, due to restrictions on the user areas of the individuals who will be using this software.

    AForge.Video.FFMPEG - Again due to considerations of those using this software I can’t have unmanaged DLL’s sat in the output folder with the Executable file, and unfortunately this particular DLL cant be compiled properly using Costura Fody.

    AVIFile Library Wrapper (From Code Project) - Again can’t seem to get this to compress a stream correctly from Bitmaps from the New Frame Events.

    DirectShow - Appears to use C++ and unfortunately is beyond my skill level at this time.

    The Relevant Code Snippets :

    Current References :

    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Resources;
    using System.Drawing.Imaging;
    using System.IO;
    //Aforge Video DLL's
    using AForge.Video;
    using AForge.Video.VFW;
    using AForge.Video.DirectShow;
    //Aforge Image DLL's
    using AForge.Imaging;
    using AForge.Imaging.Formats;
    using AForge.Imaging.Filters;
    //AviLibrary
    using AviFile;

    Global Variables :

       #region Global Variables

       private FilterInfoCollection CaptureDevice; // list of available devices
       private VideoCaptureDevice videoSource;
       public System.Drawing.Image CapturedImage;

       bool toggleMic = false;

       bool toggleRec = false;
       //aforge
       AVIWriter aviWriter;
       Bitmap image;


       #endregion

    Code for Displaying Stream

       #region Displays the Stream

       void videoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
       {
           picBoxStream.SizeMode = PictureBoxSizeMode.Zoom;
           picBoxStream.Image = (Bitmap)eventArgs.Frame.Clone();// clones the bitmap


           if (toggleRec == true)
           {
               image = (Bitmap)eventArgs.Frame.Clone();
               aviWriter.AddFrame(image);
           }
       }

       #endregion

    Current Code for Recording Stream

       #region Record Button

       private void btnRecord_Click(object sender, EventArgs e)
       {
           if (toggleRec == false)
           {
               saveAVI = new SaveFileDialog();
               saveAVI.Filter = "AVI Files (*.avi)|*.avi";

               if (saveAVI.ShowDialog() == DialogResult.OK)
               {
                   aviWriter = new AVIWriter();
                   aviWriter.Open(saveAVI.FileName, 1280, 720);

                   toggleRec = true;
                   Label lblRec = new Label();
               }

           }
           else if (toggleRec == true)
           {
               aviWriter.Close();
               toggleRec = false;
           }
       }

       #endregion

    I apoligise if the above code doesn’t look quite right, I have been swapping, changing and recoding those three sections a lot in order to find a working combination. This means that it’s rather untidy but I didn’t see the point in cleaning it all up until I had the code working. That being said really any help that you can provide is greatfully recieved, even if it’s a case of what I want to do just cannot be done.

    Thank you in advance.

    EDIT : 2019 :

    It’s been awhile since I posted this and it still gets the odd bit of interest here and there. Back when I posted this I was teaching myself to code and I had this weird quirk that I didn’t like using 3rd party libraries if I could avoid it, I wanted to do my own work, since then I’ve learnt a lot and one of those things is that the open source world is immense, impressive and kind. So if there is a 3rd party library that does what you want just use it, it’ll save you time.

  • FFMPEG unexpected behavior inside nodejs Lambda function

    29 juin 2021, par Rafael Castelo

    I'm trying to burn subtitles into a video using FFMPEG. I'm working within a serverless lambda architecture, and we've used FFMPEG with lambda by using layers before and everything worked okay.
Now I'm trying to burn subtitles inside a video using the following command :

    


    ffmpeg -i https://some-bucket.s3.region.amazonaws.com/my-video.mp4 -f mp4 -vf subtitles=sub.srt subtitled-video.mp4


    


    The issue is, that command works perfectly inside my local machine or any other instance I try. However inside my lambda function, I just get the original video without the subtitles.
At first I thought it could be the ffmpeg build I was using, but after trying wiht it, it worked in every other environment I tried.

    


    Also I don't get any error in the output from the ffmpeg job inside lambda, everything seeems to work okay. Just that it doesn't burn the subtitles

    


    I hope you can help me with this issue. Or at least point me in the right direction.

    


    Thanks in advance

    


  • how to download portion of video which was uploaded into AWS s3 bucket, though Nodejs SDKs

    22 février 2024, par rama rangeswara reddy

    I have uploaded a 1GB .mp4 file to an AWS S3 bucket. Using the AWS-SDK provided by the npm package, I am able to download the entire video. However, I have a specific requirement to generate a thumbnail at the 6-second mark of the video. Currently, I download the entire 1GB video to my local machine and then generate the thumbnail at the desired duration.

    


    To optimize server resources and reduce disk load, I plan to download only the first 10 seconds of the video, which should be approximately 10MB or less in size. By doing so, I can significantly reduce download time and server load while still fulfilling my requirement of generating the thumbnail at the 6-second mark. Therefore, instead of downloading the entire 1GB video, I aim to download only the 10MB segment corresponding to the first 10 seconds of the video.

    


    I am using nodejs, expressJS, as backed Technologies.

    


    `

    


    `async function downloadS3FileToLocalDirAndReturnPath(videoKey) {
    return new Promise(async (resolve, reject) => {
        try {
            AWS.config.update({
                accessKeyId: config.AWS.KEYS.accessKeyId,
                secretAccessKey: config.AWS.KEYS.secretAccessKey,
                region: config.AWS.KEYS.region,
                httpOptions: config.AWS.KEYS.httpOptions
            });
            const s3 = new AWS.S3();

            // Specify the local file path where you want to save the downloaded video
            const localFilePath = `${os.tmpdir()}/${Date.now()}_sre.mp4`;

            // Configure the parameters for the S3 getObject operation
            const params = {
                Bucket: config.AWS.S3_BUCKET,
                Key: videoKey
            };

            const result = await s3.getObject(params).promise();
            const fileContent = result.Body;
            fs.writeFileSync(localFilePath, fileContent);
            resolve(localFilePath);
        } catch (error) {
            reject(error);
        }
    });
}`


    


    this code was working fine to download the whole video , but i need to download only first 10 seconds duration

    


    S3 : How to do a partial read / seek without downloading the complete file ?

    


    I tried this ,before posting this question with above post, video was downloading , it was not playing , by throwing this error , the file contains no playable streams

    


    async function generateThumbnails(videoKey) {

const s3 = new AWS.S3();

const params = {
    Bucket: KEYS.bucket,
    Key: videoKey, // Specify the key of the video file in S3
    Range: `bytes=0-${1024 * 800}`, // Specify the range of bytes you want to retrieve
};

const file = fs.createWriteStream(`/tmp/${Date.now()}_rama.mp4`);

const s3Stream = s3.getObject(params).createReadStream();

s3Stream.pipe(file);

s3Stream.on("error", (error) => {
    console.log("Error Occured while File downloading!! ");
});

s3Stream.on("finish", () => {
    console.log("File downloaded Successfully ");
});


    


    }