
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (30)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne 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, parCe 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 2011Documentation 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 -
lavc/huffyuvdsp : basic R-V V add_hfyu_left_pred_bgr32
12 novembre 2023, par Rémi Denis-Courmontlavc/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.2This 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. -
Serving video stream in Node with ffmpeg
30 mars 2023, par SpedwardsI 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
, orReadableStream
. TheReadWriteStream
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 ?