Recherche avancée

Médias (91)

Autres articles (38)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

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

Sur d’autres sites (3453)

  • I have a log file with RTP packets : now what ?

    9 mai 2012, par Brannon

    I have a log file with RTP packets coming off of a black box device. I also have a corresponding SDP file (RTSP DESCRIBE) for that. I need to convert this file into some kind of playable video file. Can I pass these two files to FFMpeg or VLC or something else and have it mux that data into something playable ?

    As an alternate plan, I can loop through the individual packets in code and do something with each packet. However, it seems that there are existing libraries for parsing this data. And it seems to do it by hand would be asking for a large project. Is there some kind of video file format that is a pretty raw mix of SDP and RTP ? Thanks for your time.

    Is there a way for FFmpeg or VLC to open an SDP file and then get their input packets through STDIN ?

    I generally use C#, but I could use C if necessary.

    Update 1 : Here is my unworking code. I'm trying to get some kind of output to play with ffplay, but I haven't had any luck yet. It gives me invalid data errors. It does go over all the data correctly as far as I can tell. My output is nearly as big as my input (at about 4MB).

       public class RtpPacket2
       {
           public byte VersionPXCC;
           public byte MPT;
           public ushort Sequence; // length?
           public uint Timestamp;
           public uint Ssrc;
           public int Version { get { return VersionPXCC >> 6; } }
           public bool Padding { get { return (VersionPXCC & 32) > 0; } }
           public bool Extension { get { return (VersionPXCC & 16) > 0; } }
           public int CsrcCount { get { return VersionPXCC & 0xf; } } // ItemCount
           public bool Marker { get { return (MPT & 0x80) > 0; } }
           public int PayloadType { get { return MPT & 0x7f; } } // PacketType
       }


       static void Main(string[] args)
       {
           if (args.Length != 2)
           {
               Console.WriteLine("Usage: <input rtp="rtp" file="file" /> <output 3gp="3gp" file="file">");
               return;
           }
           var inputFile = args[0];
           var outputFile = args[1];
           if(File.Exists(outputFile)) File.Delete(outputFile);

           // FROM the SDP : fmtp 96 profile-level-id=4D0014;packetization-mode=0
           var sps = Convert.FromBase64String("Z0LAHoiLUFge0IAAA4QAAK/IAQ=="); //      BitConverter.ToString(sps)  "67-42-C0-1E-88-8B-50-58-1E-D0-80-00-03-84-00-00-AF-C8-01"  string
           var pps = Convert.FromBase64String("aM44gA=="); //      BitConverter.ToString(pps)  "68-CE-38-80"   string
           var sep = new byte[] { 00, 00, 01 };

           var packet = new RtpPacket2();
           bool firstFrame = true;
           using (var input = File.OpenRead(inputFile))
           using (var reader = new BinaryReader(input))
           using (var output = File.OpenWrite(outputFile))
           {
               //output.Write(header, 0, header.Length);
               output.Write(sep, 0, sep.Length);
               output.Write(sps, 0, sps.Length);
               output.Write(sep, 0, sep.Length);
               output.Write(pps, 0, pps.Length);
               output.Write(sep, 0, sep.Length);
               while (input.Position &lt; input.Length)
               {
                   var size = reader.ReadInt16();
                   packet.VersionPXCC = reader.ReadByte();
                   packet.MPT = reader.ReadByte();
                   packet.Sequence = reader.ReadUInt16();
                   packet.Timestamp = reader.ReadUInt32();
                   packet.Ssrc = reader.ReadUInt32();
                   if (packet.PayloadType == 96)
                   {
                       if (packet.CsrcCount > 0 || packet.Extension) throw new NotImplementedException();

                       var header0 = reader.ReadByte();
                       var header1 = reader.ReadByte();

                       var fragmentType = header0 &amp; 0x1F; // should be 28 for video
                       if(fragmentType != 28) // 28 for video?
                       {
                           input.Position += size - 14;
                           continue;
                       }
                       var nalUnit = header0 &amp; ~0x1F;
                       var nalType = header1 &amp; 0x1F;
                       var start = (header1 &amp; 0x80) > 0;
                       var end = (header1 &amp; 0x40) > 0;

                       if(firstFrame)
                       {
                           output.Write(sep, 0, sep.Length);
                           output.WriteByte((byte)(nalUnit | fragmentType));
                           firstFrame = false;
                       }

                       for (int i = 0; i &lt; size - 14; i++)
                           output.WriteByte(reader.ReadByte());
                       if (packet.Marker)
                           firstFrame = true;
                   }
                   else input.Position += size - 12;
               }
           }
       }
    </output>
  • how to restream rtsp h264 as "live dvr" for iOs using ffserver ?

    18 mai 2017, par mojovski

    I would like to grab an existing stream from an IP-Camera delivering h264 encoded rtsp stream and restream it for iPhone/Ipad, where the user would have the opportunity to jump back in time for aprox. 1 minute. And later jump back to the "live" feed.

    Actually I would like to do the same as in wowza (http://www.wowza.com/addons/wowza-ndvr-addon) but with ff** software.

    Thank you for all your hints !

  • FFmpeg - trying to put a static image over existing video.

    16 juillet 2012, par Loz101

    I am using blob tracker but have timecode on video files. I want to overlay a black box over them therefore preventing the timecode interfering with the tracker. Thanks