Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (30)

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

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (5096)

  • build : Add separate hidden config option for the intrax8 code

    14 janvier 2014, par Diego Biurrun
    build : Add separate hidden config option for the intrax8 code
    

    This allows for slightly cleaner dependency specification.

    • [DH] configure
    • [DH] libavcodec/Makefile
  • lavc/huffyuvdsp : basic R-V V add_hfyu_left_pred_bgr32

    12 novembre 2023, par Rémi Denis-Courmont
    lavc/huffyuvdsp : basic R-V V add_hfyu_left_pred_bgr32
    

    Better performance can probably be achieved with a more intricate
    unrolled loop, but this is a start :

    add_hfyu_left_pred_bgr32_c : 15084.0
    add_hfyu_left_pred_bgr32_rvv_i32 : 10280.2

    This would actually be cleaner with the RISC-V P extension, but that is
    not ratified yet (I think ?) and usually not supported if V is supported.

    • [DH] libavcodec/riscv/huffyuvdsp_init.c
    • [DH] libavcodec/riscv/huffyuvdsp_rvv.S
  • Serving video stream in Node with ffmpeg

    30 mars 2023, par Spedwards

    I have a local-only utility where the backend is Adonis.js and the frontend is Vue.js. I'm trying to get a readable stream and have it play in my frontend. I have got the very basics down, the video plays, but I can't skip to anywhere else in the video, it'll just jump back to where it left off and continue playing.

    


    I've been told that it requires a bi-directional data flow. What I was planning on doing was updating the frontend stream URL to add a query string to the end with the timestamp of where the user (me) skips to. This would go back to the backend and I'd use ffmpeg to create a new stream from the video starting at that timestamp.

    


    The problem is that I've never really messed around with streams before and I'm finding all of this very confusing. I'm able to get a ReadStream of my video and serve it, but I can't write to it. I can create a WriteStream and have it start at my timestamp (I think) but I can't serve it because I can only return ReadStream, ReadWriteStream, or ReadableStream. The ReadWriteStream sounds perfect but I have no idea how to create one and I couldn't find anything fruitful after a few hours of searching, nor could I find anyway of converting a WriteStream to a ReadStream.

    


    There's also the problem I alluded to ; I have no idea if my ffmpeg method is actually working since I can't serve it to test.

    


    My working controller method without any of the timestamp stuff is as follows :

    


    public async stream({ params, response }: HttpContextContract) {
    const file = await File.find(params.id)
    if (!file) {
        return response.badRequest()
    }
    const stream = await Drive.getStream(file.path) // this creates a ReadableStream
    return response.stream(stream)
}


    


    For all the ffmpeg stuff, I'm using fluent-ffmpeg as it was the best wrapper I could find.

    


    This was my first attempt.

    


    public async stream({ params, request, response }: HttpContextContract) {
    const file = await File.find(params.id)
    if (!file) {
        return response.badRequest()
    }
    const stream = await Drive.getStream(file.path) // this creates a ReadableStream
    if (request.input('t')) {
        const timestamp = request.input('t')
        ffmpeg()
            .input(stream)
            .seekInput(timestamp)
            .output(stream)
    }
    return response.stream(stream)
}


    


    How can I achieve what I want ? Am I going about this the wrong way and/or is there a better way ?