
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (112)
-
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (11619)
-
Solution for VB6 to broadcast Webcam
14 septembre 2018, par vantrung -cunconSorry, I know VB6 is decades ago, but I’m in a situation that I have to use VB6 to deliver live webcam stream beetween 2 PC in Server - Client Model program. Vb6-code holds the connection then I have no choice but to transfer all data via that connection.
I’ve tried weeks for this, uncountable approaches but went to nowhere.
My efforts focused on 3 major approaches :1/ Use ffmpeg to record live webcam as ".avi" file on hard disk, transfer parts of file to other end & play it. But I’ve stucked with a media-player that can play a "being written" avi file.
Windows Media Player control told me "file already in use..." & VLC Plugin can’t even be added to VB6 (axvlc.dll).
2/ Use ffmpeg to save live webcam as avi file, transfer each bit of that file to the other end, then in other end, extract 24 images / second from the avi to display continously in a picture box.
This approach is ok except that my hard disk get fulled of images in a time of wink and my program get very slow before hanging.3/ Use ffmpeg to stream the live webcam to a rtp-port like this :
ffmpeg -f dshow -i video="Lenovo EasyCamera" -vcodec mpeg2video -pix_fmt yuv422p -f rtp -an rtp://224.1.2.3:8191
I’ve successfully watch the stream in VLC, but VLC(axvlc.dll) refused to be integrated into ancient VB6. And more important, I don’t know how to redirect/reroute the rtp stream to other PC with VB6.
Any one please light me up ? (Any 3rd party component is welcomed)
-
Using Hazel to execute ffmpeg (installed via Homebrew) script to convert video to .gif
9 août 2018, par benbennybenbenWhat I want to do is set Hazel to watch a folder for a new video that I create and then when matched, an embedded FFMPEG script converts the video into a gif.
I have the matching criteria done,
Hazel matching rulesI have the ffmpeg recipe done,
ffmpeg -ss 5.0 -t 2.5 -i $1 -r 15 -filter_complex "[0:v] fps=15, scale=500:-1, split [a][b];[a] palettegen [p]; [b][p] paletteuse" $1.gif
But when I put the ffmpeg recipe in the "Embedded Script" dialogue box, I get an error when the match runs.
2018-08-09 18:43:15.818 hazelworker[68549] [Error] Shell script failed: Error processing shell script on file /Users/bengregory/Scripts/khgfygfjhbvmnb.mp4.
2018-08-09 18:43:15.818 hazelworker[68549] Shellscript exited with non-successful status code: -900I’m not sure if it’s relevant to mention that I’ve install ffmpeg via homebrew
This is what the embedded shell script looks like
ffmpeg embedded scriptI’ve been trying to get this to work for weeks and so far not found anything that helps. I read through this article on how to use handbrakeCLI, but no luck
Hazel and HandbrakeCLI tutorialAny help would be greatly received ! Cheers
-
How to add an album cover to an mp3 stream using FFmpeg ?
29 décembre 2022, par Daniel LAPIDESI'm having a bit of an issue and I'd really appreciate it if I could get some insights.



What I am trying to do is to add an album cover to the mp3 file that will be downloaded from the front-end.



Context



I'm downloading a video stream from YouTube and converting it to mp3 using
fluent-ffmpeg
.

To get the video I use theytdl
npm module.


I then pipe this stream to the front-end.



What I've found



fluent-ffmpeg
offers eitherpipe()
orsaveToFile()
.


What I figured is that when I use the
saveToFile()
function and actually save my stream into an mp3 file, it works, I do get the album cover.


But when I pipe the stream to front-end or even into a file, the song is saved properly into a file but without the album cover.



Here is my code



Back-end (NodeJS)



let video = ytdl(`http://youtube.com/watch?v=${videoId}`, {
 filter: (format) => format.container === 'mp4' && format.audioEncoding,
 quality: 'lowest'
});

let stream = new FFmpeg()
 .input(video)
 .addInput(`https://i.ytimg.com/vi/${videoId}/default.jpg`)
 .outputOptions([
 '-map 0:1',
 '-map 1:0',
 '-c copy',
 '-c:a libmp3lame',
 '-id3v2_version 3',
 '-metadata:s:v title="Album cover"',
 '-metadata:s:v comment="Cover (front)"'
 ])
 .format('mp3');




And then piping it to my front-end.



stream.pipe(res);
stream
 .on('end', () => {
 console.log('******* Stream end *******');
 res.end.bind(res);
 })
 .on('error', (err) => {
 console.log('ERR', err);
 res.status(500).end.bind(res);
 });




Front-end (React)



axios.get(url)
 .then(res => {
 axios(`${url}/download`, {
 method: 'GET',
 responseType: 'blob'
 })
 .then(stream => {
 const file = new Blob(
 [stream.data],
 { type: 'audio/mpeg' });
 //Build a URL from the file
 const fileURL = URL.createObjectURL(file);
 })
 .catch(err => {
 console.log('ERROR', err);
 });
 })
 .catch(err => {
 console.log('ERROR', err);
 });