Recherche avancée

Médias (91)

Autres articles (93)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (5243)

  • Revert "avformat/rtp : Pass sources and block filter addresses via sdp file for rtp"

    5 avril 2020, par Carl Eugen Hoyos
    Revert "avformat/rtp : Pass sources and block filter addresses via sdp file for rtp"
    

    This reverts commit b71685865fe761925feedda3cd0b288224d9a509.

    The commit lead to the use of an uninitialized variable.
    Other issues were listed by Andreas Rheinhardt :
    https://ffmpeg.org/pipermail/ffmpeg-devel/2020-March/259150.html

    • [DH] libavformat/rtsp.c
  • avformat/matroskaenc : Avoid allocations for SeekHead

    29 décembre 2019, par Andreas Rheinhardt
    avformat/matroskaenc : Avoid allocations for SeekHead
    

    Up until e7ddafd5, the Matroska muxer wrote two SeekHeads : One at the
    beginning referencing the main level 1 elements (i.e. not the Clusters)
    and one at the end, referencing the Clusters. This second SeekHead was
    useless and has therefore been removed. Yet the SeekHead-related
    functions and structures are still geared towards this usecase : They
    are built around an allocated array of variable size that gets
    reallocated every time an element is added to it although the maximum
    number of Seek entries is a small compile-time constant, so that one should
    rather include the array in the SeekHead structure itself ; and said
    structure should be contained in the MatroskaMuxContext instead of being
    allocated separately.

    The earlier code reserved space for a SeekHead with 10 entries, although
    we currently write at most 6. Reducing said number implied that every
    Matroska/Webm file will be 84 bytes smaller and required to adapt
    several FATE tests ; furthermore, the reserved amount overestimated the
    amount needed for for the SeekHead's length field and how many bytes
    need to be reserved to write a EBML Void element, bringing the total
    reduction to 89 bytes.

    This also fixes a potential segfault : If !mkv->is_live and if the
    AVIOContext is initially unseekable when writing the header, the
    SeekHead is already written when writing the header and this used to
    free the SeekHead-related structures that have been allocated. But if
    the AVIOContext happens to be seekable when writing the trailer, it will
    be attempted to write the SeekHead again which will lead to segfaults
    because the corresponding structures have already been freed.

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@gmail.com>

    • [DH] libavformat/matroskaenc.c
    • [DH] tests/fate/matroska.mak
    • [DH] tests/fate/wavpack.mak
    • [DH] tests/ref/fate/aac-autobsf-adtstoasc
    • [DH] tests/ref/fate/binsub-mksenc
    • [DH] tests/ref/fate/rgb24-mkv
    • [DH] tests/ref/lavf-fate/av1.mkv
    • [DH] tests/ref/lavf/mka
    • [DH] tests/ref/lavf/mkv
    • [DH] tests/ref/lavf/mkv_attachment
    • [DH] tests/ref/seek/lavf-mkv
  • FFMPEG recording in ASP.NET Core mvc application

    19 avril 2020, par Timber

    I'm using ASP.NET Core and ffmpeg to record a live video stream. When the page receives a get request, the stream should begin recording and saving to a folder using ffmpeg. I want to make it so that when visiting the stop endpoint, the ffmpeg process is closed cleanly.

    &#xA;&#xA;

    Unfortunately I'm unable to send a 'q' to stdin after leaving the Get method. Using taskkill requires the use of /F making the ffmpeg process (which is not a window) force quit and not save the video properly, resulting in a corrupt file.

    &#xA;&#xA;

    I tried using Process.Kill() but that results in a corrupt file as well. Also, I tried Process.CloseMainWindow() which worked, but only when the process is started as a window, and I'm unable to start the process as a window in the server I'm using.

    &#xA;&#xA;

    I've include the code I have so far below, so hopefully someone could lead me in the right path.

    &#xA;&#xA;

    using System;&#xA;...&#xA;using Microsoft.Extensions.Logging;&#xA;&#xA;namespace MyApp.Controllers&#xA;{&#xA;    [Route("api/[controller]")]&#xA;    [Authorize]&#xA;    public class RecordingController : Controller&#xA;    {&#xA;        private readonly ApplicationDbContext _context;&#xA;        private readonly ILogger<homecontroller> _logger;&#xA;&#xA;        public RecordingController(ApplicationDbContext context, ILogger<homecontroller> logger)&#xA;        {&#xA;            _context = context;&#xA;            _logger = logger;&#xA;        }&#xA;&#xA;        [HttpGet]&#xA;        public async Task<actionresult> Get()&#xA;        {&#xA;&#xA;            // Define the os process&#xA;            var processStartInfo = new ProcessStartInfo()&#xA;            {&#xA;                // ffmpeg arguments&#xA;                Arguments = "-f mjpeg -i \"https://urlofstream.com/video.gci\" -r 5 \"wwwroot/video.mp4\"",&#xA;                FileName = "ffmpeg.exe",&#xA;                UseShellExecute = true&#xA;            };&#xA;&#xA;            var p1 = Process.Start(processStartInfo);&#xA;&#xA;            // p1.StandardInput.WriteLineAsync("q"); &lt;-- This works here but not in the Stop method&#xA;&#xA;            return Ok(p1.Id);&#xA;        }&#xA;&#xA;&#xA;        // GET: api/Recording/stop&#xA;        [HttpGet("stop/{pid}")]&#xA;        public ActionResult Stop(int pid)&#xA;        {&#xA;            Process processes = Process.GetProcessById(pid);&#xA;            processes.StandardInput.WriteLineAsync("q");     // Does not work, is not able to redirect input&#xA;            return Ok();&#xA;        }&#xA;    }&#xA;}&#xA;&#xA;&#xA;</actionresult></homecontroller></homecontroller>

    &#xA;