
Recherche avancée
Médias (1)
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (72)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
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" ; -
Le plugin : Gestion de la mutualisation
2 mars 2010, parLe plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
Installation basique
On installe les fichiers de SPIP sur le serveur.
On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
< ?php (...)
Sur d’autres sites (7677)
-
Revision 4beb889f99 : Remove redundant mode update in sub8x8 decoding The probability model used to c
24 septembre 2013, par Jingning HanChanged Paths :
Modify /vp9/decoder/vp9_decodemv.c
Remove redundant mode update in sub8x8 decodingThe probability model used to code prediction mode is conditioned
on the immediate above and left 8x8 blocks' prediction modes. When
the above/left block is coded in sub8x8 mode, we use the prediction
mode of the bottom-right sub8x8 block as the reference to generate
the context.This commit moves the update of mbmi.mode out of the sub8x8 decoding
loop, hence removing redundant update steps and keeping the bottom-
right block's mode for the decoding process of next blocks.Change-Id : I1e8d749684d201c1a1151697621efa5d569218b6
-
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 ?


-
Révision 19367 : sur un fichier vide ou inexistant, taille en octet renvoie une chaine vide pluto...
14 mai 2012, par Fil Up