Recherche avancée

Médias (0)

Mot : - Tags -/objet éditorial

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

Autres articles (64)

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

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (12312)

  • Accord.Video.FFMPEG.VideoFileWriter writes different data from the input data

    14 novembre 2017, par Rasool Ahmed

    I’m working on project that encrypting video frames using RC4 algorithm and save these frames in playable video file.

    I used a package named Accord.Video.FFMPEG. This package has a classes (VideoFileReader, & VideoFileWriter) that reads and writes video frames.

    The first step is reads the video :

    VideoHandler v = new VideoHandler();
    OpenFileDialog newimag = new OpenFileDialog();
           if (newimag.ShowDialog() == DialogResult.OK)
           {
               textfile = newimag.FileName;
               picbox.ImageLocation = textfile;
               status1.Text = "loaded";
               //MessageBox.Show("your video file have been loaded seccufly"); // is an idea for viwing message

           }
       bytedata = v.ReadAllFrameBytes(textfile);

    The second step is encrypting the frames of video :

    byte[] bn = new byte[bytedata.Length];// new array to hold the encryptred file

           bn = Encrypt(bytedata, ba);

    The last step is saving the encrypted frames :

    v.WriteFramesData(newfilepath, bn);

    My encrypting algorithm is encrypting and decrypting the cipher with same algorithm and key.

    These stpes works on Text, and Images files, but when I use it on video I can’t restore the encrypted video. After some testings, I found that VideoFileWriter dosn’t write the same input frames. Whyyyyyyy ?

    Here is my VideoFileHandler I made it :

    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Drawing.Imaging;
    using System.IO;
    using Accord.Video.FFMPEG;
    namespace imgtobyt_1_in_c
    {
    class VideoHandler
    {
       public List data;
       public byte[] imagedata;
       public int Height, Width;
       public byte[] ReadAllFrameBytes(string FileName)
       {
           // create instance of video reader
           VideoFileReader reader = new VideoFileReader();
           // open video file
           reader.Open(FileName);
           Height = reader.Height;
           Width = reader.Width;

           data = new List();
           // read video frames
           for (int i = 0; i < 100; i++) //change 100 to reader.FrameCount
           {
               Bitmap videoFrame = reader.ReadVideoFrame();
               byte[] framebytes = GetBytesFromFrame(videoFrame);
               data.Add(framebytes);
               // dispose the frame when it is no longer required
               videoFrame.Dispose();
           }
           reader.Close();
           imagedata = new byte[data.Count * data[0].Length];
           int c = 0;
           for (int i = 0; i < data.Count; i++)
           {
               byte[] d = data[i];
               for (int x = 0; x < d.Length; x++)
               {
                   imagedata[c] = d[x];
                   c++;
               }
           }
           return imagedata;
       }

       public byte[] GetBytesFromFrame(Bitmap Frame)
       {
           LockBitmap lockBitmap = new LockBitmap(Frame);
           lockBitmap.LockBits();

           byte[] framebytes = new byte[Frame.Width * Frame.Height * 3];
           int z = 0;
           for (int x = 0; x < lockBitmap.Height; x++)
               for (int y = 0; y < lockBitmap.Width; y++)
               {
                   Color Pixel = lockBitmap.GetPixel(y, x);
                   framebytes[z] = Pixel.R;
                   z++;
                   framebytes[z] = Pixel.G;
                   z++;
                   framebytes[z] = Pixel.B;
                   z++;
               }

           lockBitmap.UnlockBits();
           return framebytes;
           //using (var stream = new MemoryStream())
           //{
           //    Frame.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
           //    return stream.ToArray();
           //}
       }

       public Bitmap GetFrameFromBytes(byte[] Framebytes, ref int offset, int Width, int Height)
       {
           Bitmap Frame = new Bitmap(Width, Height, PixelFormat.Format24bppRgb);
           LockBitmap lockBitmap = new LockBitmap(Frame);
           lockBitmap.LockBits();
           for (int x = 0; x < Height; x++)
               for (int y = 0; y < Width; y++)
               {
                   Color Pixel = Color.FromArgb(Framebytes[offset], Framebytes[offset + 1], Framebytes[offset + 2]); offset += 3;
                   lockBitmap.SetPixel(y, x, Pixel);
               }

           lockBitmap.UnlockBits();

           return Frame;
           //Bitmap bmp;
           //using (var ms = new MemoryStream(Framebytes))
           //{
           //    bmp = new Bitmap(ms);
           //}
           //return bmp;
       }

       public void WriteFramesData(string FileName, byte[] data)
       {
           // create instance of video writer
           VideoFileWriter writer = new VideoFileWriter();
           // create new video file
           writer.Open(FileName, Width, Height);

           int offset = 0;
           // write video frames
           for (int i = 0; i < 100; i++)
           {
               // create a bitmap to save into the video file
               Bitmap Frame = GetFrameFromBytes(data, ref offset, Width, Height);
               writer.WriteVideoFrame(Frame);
           }
           writer.Close();
       }
    }
    }

    Please, I need to make this works.

  • avcodec/packet : add an LCEVC enhancement data payload side data type

    29 août 2024, par James Almer
    avcodec/packet : add an LCEVC enhancement data payload side data type
    

    Signed-off-by : James Almer <jamrial@gmail.com>

    • [DH] doc/APIchanges
    • [DH] libavcodec/decode.c
    • [DH] libavcodec/packet.c
    • [DH] libavcodec/packet.h
    • [DH] libavcodec/version.h
  • avcodec/mpeg12dec : parse A53 caption data embedded in SCTE-20 user data

    15 mars 2017, par Aman Gupta
    avcodec/mpeg12dec : parse A53 caption data embedded in SCTE-20 user data
    

    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavcodec/mpeg12dec.c
    • [DH] tests/fate/subtitles.mak
    • [DH] tests/ref/fate/sub-cc-scte20