Recherche avancée
Médias (3)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (82)
-
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" ; -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.
Sur d’autres sites (10563)
-
FFMPEG failing in AWS Lambda
18 février 2019, par Zaid AmirI am trying to create a transcoding function for short videos. The function is hosted on AWS Lambda. The problem is that AWS lambda seems to be missing something that FFMPEG requires, at least according to Amazon.
I contacted Amazon earlier and this is their response to the issue :
We found that the FFMPEG operations require at least libx264 and an
acc library, both of which will have dependencies of their own. To
troubleshoot the issue it will involve diving deeper into the full
dependency chain. We can see that it works in the Amazon Linux
environment however, the environment is similar but not identical to
the lambda environment. There can be some dependencies that exist in
Amazon Linux but not in lambda environment as Lambda runs on the
container. Here, as FFmpeg is a third party software, diving deeper
into the dependency chain and verifying the version compatibilities is
very hard to do. Unfortunately going further, this is bound to go into
architecture and code support which is out of AWS Support scope 1. I
hope you understand our limitations. However should FFmpeg support
have any questions specific to the Lambda platform, please do let us
know and we will be happy to assist. We will be in better position to
investigate further once you receive an update from the FFmpeg support
suggesting an issue from Lambda end.Upon AWS suggestion, I contacted FFMPEG on the developers mailing list, my message was rejected with the reason being that its more suited to ffmpeg users mailing list than developers. I sent an email to ’ffmpeg-user@ffmpeg.org’ a week ago and did not get any response yet.
I then went and built a dynamically linked ffmpeg version making sure to package all libraries, checked ddl on each one, then made a small lambda function that looped over all binaries and ddled each one of them, compared that to the output I got from Amazon Linux and the same dependencies/versions exists on both lambda and the AWS Linux instance yet ffmpeg still fails on lambda.
You can find a detailed log file here : https://www.datafilehost.com/d/6e5e21bb
And this is a sample of the errors I’m getting, repeated across the entire log file :
2018-08-14T12:27:10.874Z [h264 @ 0x65c2fc0] concealing 2628 DC, 2628
AC, 2628 MV errors in P frame2018-08-14T12:27:10.874Z [aac @ 0x65d2f00] channel element 2.11 is not
allocated2018-08-14T12:27:10.874Z Error while decoding stream #0:1 : Invalid
data found when processing input2018-08-14T12:27:10.874Z [h264 @ 0x67e86c0] Invalid NAL unit size
(108085662 > 1649).2018-08-14T12:27:10.874Z [h264 @ 0x67e86c0] Error splitting the input
into NAL units.2018-08-14T12:27:10.874Z [aac @ 0x65d2f00] channel element 2.0 is not
allocated2018-08-14T12:27:10.874Z Error while decoding stream #0:1 : Invalid
data found when processing input2018-08-14T12:27:10.874Z [h264 @ 0x68189c0] Invalid NAL unit size
(71106974 > 1085).2018-08-14T12:27:10.874Z [h264 @ 0x68189c0] Error splitting the input
into NAL units.2018-08-14T12:27:10.874Z [aac @ 0x65d2f00] Pulse tool not allowed in
eight short sequence.This log is generated when trying to perform an HLS transcoding on this file : https://www.datafilehost.com/d/999a4492
Note that the issue is not related to that file alone nor is it related to HLS, its general and happen on all videos and any ffmpeg command that tries to seek the stream, even tried extracting a single frame from a video using the simplest form possible for example :
ffmpeg -ss 00:00:02 -I file.mp4 -vframes 1 -y output.jpgalso fails with the same errors in the log file.Not sure how to debug this further. Tried enabling debug logs with ‘-loglevel debug’ but did not give me any extra info. Any help or suggestions
-
Installation Error when installing MLT [on hold]
3 décembre 2013, par user3060419my PC configuration is
Gnome version 3.4.2
memory 1.7Gib
Processor AMD Athlon(tm) II X2 270 Processor × 2
Graphics VESA : RS780
Base system Debian GNU/Linux 7 (wheezy) 64-bit
Disc 486.3GibI tried to intall MLT(Media Lovin Toolkit). after installing all dependencies when i configure with this command----
./configure —prefix=/usr —enable-gpl —qimage-libdir=/usr/lib/ —qimage-includedir=/usr/include/qt4
Then the output shows as----
Configuring modules/linsys :
Configuring modules/lumas :
Configuring modules/motion_est :
Configuring modules/normalize :
Configuring modules/oldfilm :
Configuring modules/opengl :
Configuring modules/plus :
Configuring modules/qimage :
- Qt not found : disabling
Configuring modules/resample :
Configuring modules/rotoscoping :
Configuring modules/rtaudio :
Configuring modules/sdl :
Configuring modules/sox :
Configuring modules/swfdec :
Configuring modules/videostab :
Configuring modules/vmfx :
Configuring modules/vorbis :
Configuring modules/xine :
Configuring modules/xml :
Configuring mlt++ :
Configuring swig :
GPLv2 license used ; GPLv3 components disabled
and when i try to make by make command, then the output is---->
list='src/framework src/mlt++ src/melt src/modules src/swig profiles' ; \
for subdir in $list ; do \
make -s -C $subdir depend || exit 1 ; \
make -C $subdir all || exit 1 ; \
done
make[1] : Entering directory `/root/mlt/src/framework'make[1] : Nothing to be done for `all'.
make[1] : Leaving directory `/root/mlt/src/framework'
make[1] : Entering directory `/root/mlt/src/mlt++'
make[1] : Nothing to be done for `all'.
make[1] : Leaving directory `/root/mlt/src/mlt++'
make[1] : Entering directory `/root/mlt/src/melt'
make[1] : Nothing to be done for `all'.
make[1] : Leaving directory `/root/mlt/src/melt'
make[1] : Entering directory `/root/mlt/src/modules'
list='xml kino rotoscoping motion_est avformat effectv vmfx gtk2 opengl videostab rtaudio
jackrack resample oldfilm decklink sox vorbis dv core linsys feeds kdenlive frei0r qimage
swfdec plus xine lumas avsync normalize dgraft sdl' ; \
for subdir in $list ; doif [ -f $subdir/Makefile -a ! -f disable-$subdir ] ; \
then make -C $subdir all || exit 1; \
fi \
donemake[2] : Entering directory `/root/mlt/src/modules/xml'
make[2] : Nothing to be done for `all'.
make[2] : Leaving directory `/root/mlt/src/modules/xml'
make[2] : Entering directory `/root/mlt/src/modules/kino'
g++ -I../../ -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread pkg-config --cflags libquicktimepkg-config --cflags libdv
-Wno-deprecatedpkg-config --cflags libquicktime-c -o kino_wrapper.o kino_wrapper.ccg++ -I../../ -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-fPIC -pthreadpkg-config --cflags libquicktimepkg-config --cflags libdv-Wno-deprecated
pkg-config --cflags libquicktime-c -o avi.o avi.ccg++ -I../../ -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread pkg-config --cflags libquicktimepkg-config --cflags libdv
Wno-deprecated pkg-config --cflags libquicktime-c -o filehandler.o filehandler.ccg++ -I../../ -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread pkg-config --cflags libquicktimepkg-config --cflags libdv
Wno-deprecated pkg-config --cflags libquicktime-c -o riff.o riff.ccg++ -shared -o ../libmltkino.so factory.o producer_kino.o kino_wrapper.o avi.o error.o
filehandler.o riff.o -L../../framework -lmlt -lpthread -Wl,—no-undefined -Wl,—as-needed
lstdc++ pkg-config --libs libquicktimepkg-config --libs libdvmake[2] : Leaving directory `/root/mlt/src/modules/kino'
make[2] : Entering directory `/root/mlt/src/modules/rotoscoping'
make[2] : Nothing to be done for `all'.
make[2] : Leaving directory `/root/mlt/src/modules/rotoscoping'
make[2] : Entering directory `/root/mlt/src/modules/motion_est'
make[2] : Nothing to be done for `all'.
make[2] : Leaving directory `/root/mlt/src/modules/motion_est'
make[2] : Entering directory `/root/mlt/src/modules/avformat'
cc -shared -o ../libmltavformat.so factory.o filter_avcolour_space.o filter_avresample.o
filter_avdeinterlace.o filter_swscale.o producer_avformat.o consumer_avformat.o -L../..
/framework -lmlt -lpthread -Wl,—no-undefined -Wl,—as-needed -lavformat -lavcodec
lavutil -lswscale -lavdevicemake[2] : Leaving directory `/root/mlt/src/modules/avformat'
make[2] : Entering directory `/root/mlt/src/modules/effectv'
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-fPIC -pthread -c -o factory.o factory.ccc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o filter_burn.o filter_burn.ccc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
-ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-fPIC -pthread -c -o image.o image.c
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o utils.o utils.ccc -shared -o ../libmlteffectv.so factory.o filter_burn.o image.o utils.o -L../../framework
-lmlt -lm -Wl,—no-undefined -Wl,—as-neededmake[2] : Leaving directory `/root/mlt/src/modules/effectv'
make[2] : Entering directory `/root/mlt/src/modules/vmfx'
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o factory.o factory.ccc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o filter_chroma.o filter_chroma.cfilter_chroma.c : In function ‘filter_get_image’ :
filter_chroma.c:52:10 : warning : variable ‘y’ set but not used [-Wunused-but-set-variable]
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o filter_chroma_hold.o filter_chroma_hold.cfilter_chroma_hold.c : In function ‘filter_get_image’ :
filter_chroma_hold.c:52:10 : warning : variable ‘y’ set but not used [-Wunused-but-set-
variable]cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o filter_mono.o filter_mono.ccc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o filter_shape.o filter_shape.cfilter_shape.c : In function ‘filter_process’ :
filter_shape.c:137:9 : warning : variable ‘extension’ set but not used [-Wunused-but-set-
variable]
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread -c -o producer_pgm.o producer_pgm.ccc -shared -o ../libmltvmfx.so factory.o filter_chroma.o filter_chroma_hold.o filter_mono.o
filter_shape.o producer_pgm.o -L../../framework -lmlt -Wl,—no-undefined -Wl,—as-neededmake[2] : Leaving directory `/root/mlt/src/modules/vmfx'
make[2] : Entering directory `/root/mlt/src/modules/gtk2'
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread
pkg-config --cflags gtk+-2.0pkg-config --cflags gdk-pixbuf-2.0pkg-config --cflags pangoft2-c -o factory.o factory.c
factory.c : In function ‘initialise’ :
factory.c:47:3 : warning : ‘g_type_init’ is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread pkg-config --cflags gtk+-2.0pkg-config --cflags gdk-pixbuf-2.0
pkg-config --cflags pangoft2-c -o consumer_gtk2.o consumer_gtk2.ccc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread pkg-config --cflags gtk+-2.0pkg-config --cflags gdk-pixbuf-2.0pkg-config --cflags pangoft2-c -o producer_pixbuf.o producer_pixbuf.c
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthreadpkg-config --cflags gtk+-2.0pkg-config --cflags gdk-pixbuf-2.0pkg-config --cflags pangoft2-c -o pixops.o pixops.c
pixops.c : In function ‘pixops_process’ :
pixops.c:410:20 : warning : variable ‘tcolor2’ set but not used [-Wunused-but-set-variable]pixops.c:410:11 : warning : variable ‘tcolor1’ set but not used [-Wunused-but-set-variable]
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE-fPIC -pthread
pkg-config --cflags gtk+-2.0pkg-config --cflags gdk-pixbuf-2.0pkg-config --cflags pangoft2-c -o filter_rescale.o filter_rescale.ccc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre
ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
fPIC -pthread pkg-config --cflags gtk+-2.0pkg-config --cflags gdk-pixbuf-2.0
pkg-config --cflags pangoft2-c -o producer_pango.o producer_pango.cproducer_pango.c:28:31 : fatal error : freetype/freetype.h : No such file or directory
compilation terminated.make[2] : * [producer_pango.o] Error 1
make[2] : Leaving directory `/root/mlt/src/modules/gtk2'
make[1] : * [all] Error 1
make[1] : Leaving directory `/root/mlt/src/modules'
make : * [all] Error 1
Anyone please help me to install MLT, I really need help seriously.
-
How to implement live video streaming with ffmpeg without using WebRTC ?
8 août 2024, par ArtemFollowing up on my previous question, I'd like to inquire about alternative methods for live video streaming using ffmpeg (WebRTC is not an option due to certain constraints I prefer not to discuss here).


Context :


I have a Go application where a goroutine launches ffmpeg to process a video stream, which is then delivered to the main goroutine via a
chan []byte. I tried using WebSocket, but encountered issues as described in the previous question. HLS also didn't work well due to significant latency and artifacts like green squares on the video.

Based on a comment in the previous question, I attempted to stream the video via a simple GET request. Here's the Go handler I implemented :


func stream(helperApp agent.Helper) func(rw http.ResponseWriter, rr *http.Request) {
 a := atomic.Bool{}
 return func(rw http.ResponseWriter, rr *http.Request) {
 if !a.CAS(false, true) {
 http.Error(rw, "already running", http.StatusInternalServerError)
 return
 }

 rw.Header().Set("Access-Control-Allow-Origin", "*")
 rw.Header().Set("Content-Type", "video/mp2t")

 out := make(chan []byte)

 // create StreamParam
 go ScreenCaptureForLiveStream(StreamParam, out) // ffmpeg process starts inside

 r, w := io.Pipe()
 go func() {
 for data := range out {
 w.Write(data)
 fmt.Println(len(data))
 }
 }()
 io.Copy(rw, r)
 }
}



On the client side (HTML) :


<video muted="muted" src="http://localhost:8080/stream" controls="controls"></video>


In the browser console, I can see data being received, but the video doesn't play.


FFmpeg is executed with these parameters :


-loglevel error -f avfoundation -framerate 5 -capture_cursor 1 -capture_mouse_clicks 1 -i 1 -c:v libx264 -pix_fmt yuv420p -vf pad='ceil(iw/2)*2:ceil(ih/2)*2' -threads 0 -preset veryfast -bf 2 -f mpegts pipe:1



For validation, I ran :


ffmpeg -i http://localhost:8080/stream -c copy out.mp4



The video was successfully saved and plays.


Question :
What alternative methods exist to implement live video streaming with ffmpeg, aside from WebRTC ? Why does the current approach of streaming video via HTTP GET request not function correctly in the browser, and how can this be resolved ?