Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (46)

  • À propos des documents

    21 juin 2013, par

    Que faire quand un document ne passe pas en traitement, dont le rendu ne correspond pas aux attentes ?
    Document bloqué en file d’attente ?
    Voici une liste d’actions ordonnée et empirique possible pour tenter de débloquer la situation : Relancer le traitement du document qui ne passe pas Retenter l’insertion du document sur le site MédiaSPIP Dans le cas d’un média de type video ou audio, retravailler le média produit à l’aide d’un éditeur ou un transcodeur. Convertir le document dans un format (...)

  • Modifier la date de publication

    21 juin 2013, par

    Comment changer la date de publication d’un média ?
    Il faut au préalable rajouter un champ "Date de publication" dans le masque de formulaire adéquat :
    Administrer > Configuration des masques de formulaires > Sélectionner "Un média"
    Dans la rubrique "Champs à ajouter, cocher "Date de publication "
    Cliquer en bas de la page sur Enregistrer

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

Sur d’autres sites (10952)

  • Revision db54baf9aa : Remove "switchable_interp" from experiment list Now this experiment has been me

    30 octobre 2012, par Yaowu Xu

    Changed Paths : Modify /configure Remove "switchable_interp" from experiment list Now this experiment has been merged. Change-Id : I6c93784df89434c52a4eb8f977cd3745e269abf9

  • C# EmbedIO server : Only the first request is working trying to live stream from FFMPEG

    7 octobre 2017, par Connum

    I’m trying to build an HTTP server that will stream dynamic video/audio in the TransportStream format via FFMPEG. I found EmbedIO and it looks like a lightweight yet flexible base for this.

    So, I looked at the module examples and built a very basic module that doesn’t yet handle the request URL at all but responds with the same stream for any request, just to see whether it’s working as intended :

    namespace TSserver
    {
       using Unosquare.Swan;
       using Unosquare.Swan.Formatters;
       using System;
       using System.Collections.Generic;
       using System.IO;
       using System.Threading;
       using System.Threading.Tasks;
    #if NET46
       using System.Net;
    #else
       using Unosquare.Net;
       using Unosquare.Labs.EmbedIO;
       using Unosquare.Labs.EmbedIO.Constants;
       using System.Diagnostics;
    #endif

       /// <summary>
       /// TSserver Module
       /// </summary>
       public class TSserverModule : WebModuleBase
       {
           /// <summary>
           /// Initializes a new instance of the <see cref="TSserverModule"></see> class.
           /// </summary>
           /// The base path.
           /// The json path.
           public TSserverModule()
           {
               AddHandler(ModuleMap.AnyPath, HttpVerbs.Any, HandleRequest);
           }

           /// <summary>
           /// Gets the Module's name
           /// </summary>
           public override string Name => nameof(TSserverModule).Humanize();


           /// <summary>
           /// Handles the request.
           /// </summary>
           /// The context.
           /// The cancellation token.
           /// <returns></returns>
           private Task<bool> HandleRequest(HttpListenerContext context, CancellationToken ct)
           {
               var path = context.RequestPath();
               var verb = context.RequestVerb();

               System.Net.HttpStatusCode statusCode;
               context.Response.SendChunked = true;
               //context.Response.AddHeader("Last-Modified", File.GetLastWriteTime(filename).ToString("r"));
               context.Response.ContentType = "video/mp2t";

               try
               {
                   var ffmpeg = new Process
                   {
                       StartInfo = new ProcessStartInfo
                       {
                           FileName = "ffmpeg.exe",
                           Arguments = "-re -loop 1 -i \"./default.png\" -i \"./jeopardy.mp3\" -c:v libx264 -tune stillimage -r 25 -vcodec mpeg2video -profile:v 4 -bf 2 -b:v 4000k -maxrate:v 5000k -acodec mp2 -ac 2 -ab 128k -ar 48000 -f mpegts -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id 1 -mpegts_pmt_start_pid 4096 -streamid 0:289 -streamid 1:337 -metadata service_provider=\"MYCALL\" -metadata service_name=\"My Station ID\" -y pipe:1",
                           UseShellExecute = false,
                           RedirectStandardOutput = true,
                           CreateNoWindow = true
                       }
                   };

                   ffmpeg.Start();

                   FileStream baseStream = ffmpeg.StandardOutput.BaseStream as FileStream;
                   int lastRead = 0;
                   byte[] buffer = new byte[4096];

                   do
                   {
                       lastRead = baseStream.Read(buffer, 0, buffer.Length);
                       context.Response.OutputStream.Write(buffer, 0, lastRead);
                       context.Response.OutputStream.Flush();
                   } while (lastRead > 0);

                   statusCode = System.Net.HttpStatusCode.OK;
               }
               catch (Exception e)
               {
                   statusCode = System.Net.HttpStatusCode.InternalServerError;
               }

               context.Response.StatusCode = (int)statusCode;
               context.Response.OutputStream.Flush();
               context.Response.OutputStream.Close();

               return Task.FromResult(true);
           }

       }
    }
    </bool>

    This does indeed work, when I open a connection in a browser, a TS file is offered for download, when I connect via VLC Player, I see my default.png file accompanied by the Jeopardy think music - yay ! However, if I connect a second client (player or browser) it will just load endlessly and not get anything back. Even if I close the previous connection (abort the download or stop playback), no subsequent connection will result in any response. I have to stop and start the server again in order to be able to make one single connection again.

    It seems to me that my code is blocking the server, despite being run inside a Task of its own. I’m coming from a PHP & JavaScript background, so I’m quite new to C# and threading. So this might be pretty obvious... But I hoped that EmbedIO would handle all the multitasking/threading stuff.

  • avcodec/h264_sei : Remove "Subtitles with data type 0x%02x" sample request

    8 septembre 2015, par Michael Niedermayer
    avcodec/h264_sei : Remove "Subtitles with data type 0x%02x" sample request
    

    Suggested-by : Carl and Hendrik

    • [DH] libavcodec/h264_sei.c