
Recherche avancée
Autres articles (70)
-
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
Sur d’autres sites (7036)
-
How can I store a live stream when internet connection is interrupted ?
5 juin 2019, par Marcello MoreiraI’m building a solution using drone and 3g/4g connection.
I have an IP camera encoded in H.264 by a hardware encoder connected to a raspberry pi and a 3g/4g moldem. The hardware encoder livestream de video via RTMP to a remote server I have. All these devices are in a moving platform, and sometimes the moldem loses connection with internet for a few seconds/minutes. When this happens, I want to store the live footage in the raspberry with ffmpeg, and when the connection restores I can send it back to the server. I have access to the encoded livestream from the raspberry pi over LAN even when internet is down.I do not know how and where should I start.
I see two approaches for this.First approach
One is to do all the streaming via ffmpeg, and disable the automatic hardware stream, when ffmpeg detects that it can’t send stream to the remote server, it starts to store the video (like a buffer) until the connection is restore. The issue with this, is that I don’t know if ffmpeg can detect if internet connection is down, and how can I buffer the video. Also by doing this, when connection is restored, live video would have a huge delay, and I can’t have lot’s of delay in my solution.
Second approach
The second is simultaneously store with ffmpeg the live video, when internet goes down, a process records the timestamp, and keeps watching until internet connection is restored. Then it sends to my server only the missing piece. At my server I would need to figure out a way to join those streams back up.. (I would gladly accept tips on that too). Issue with this is that there’s limited space in my raspberry, so I can only store a limited amount. Also, my device may be turned off when it lands so I need to send the video recording ASAP after connection is restored.
So, which approach seems to be the better one ?
-
gstreamer receive and reassamble h.264 video over udp
8 mai 2019, par Ragnar HarðarsonI’m trying to capture a video stream from a Tello drone with
gstreamer
I’ve tried with a
gstreamer
pipeline ofgst-launch-1.0 -v udpsrc buffer-size=622080 skip-first-bytes=2 port=6038 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW,width=(string)960, height=(string)720, payload=(int)96, a-framerate=25" \
! queue \
! rtpvrawdepay \
! autovideosinkBut this outputs (with
export GST_DEBUG=*:3
)WARNING: from element /GstPipeline:pipeline0/GstRtpVRawDepay:rtpvrawdepay0: Could not decode stream.
Additional debug info:
gstrtpbasedepayload.c(506): GstFlowReturn gst_rtp_base_depayload_handle_buffer(GstRTPBaseDepayload *, GstRTPBaseDepayloadClass *, GstBuffer *) (): /GstPipeline:pipeline0/GstRtpVRawDepay:rtpvrawdepay0:Information about the stream can be seen here : https://github.com/m6c7l/dji-ryze-tello/tree/master/example/video
The video can be piped into
ffmpeg
with the following commandffmpeg -i - -f image2pipe -pix_fmt rgb24 -vcodec rawvideo -
I’m missing a
gstreamer
pipeline that can piece these NALs together into a h264 frame.Update : output with
playbin
I tried running the command with
export GST_DEBUG=*:3
and I’m getting the following output repeatedly :gst-launch-1.0 -v playbin uri=udp://0.0.0.0:6038
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: buffer-size = -1
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: buffer-duration = -1
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: use-buffering = false
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: download = false
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: uri = udp://0.0.0.0:6038
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: connection-speed = 0
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: source = "\(GstUDPSrc\)\ source"
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream
0:01:19.923679000 3202 0x7f9639857320 WARN h264parse gsth264parse.c:1351:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 1 Slice, Size: 16113 will be dropped
0:01:19.924320000 3202 0x7f9639857320 WARN h264parse gsth264parse.c:1351:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 1 Slice, Size: 17237 will be dropped
0:01:19.925063000 3202 0x7f9639857320 WARN codecparsers_h264 gsth264parser.c:2039:gst_h264_parse_pps: failed to read SE
0:01:19.925075000 3202 0x7f9639857320 WARN codecparsers_h264 gsth264parser.c:2046:gst_h264_parse_pps: error parsing "Picture parameter set"
0:01:19.925081000 3202 0x7f9639857320 WARN h264parse gsth264parse.c:882:gst_h264_parse_process_nal:<h264parse0> failed to parse PPS:
0:01:19.925089000 3202 0x7f9639857320 WARN h264parse gsth264parse.c:1351:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 8 PPS, Size: 5 will be dropped
0:01:19.925106000 3202 0x7f9639857320 WARN codecparsers_h264 gsth264parser.c:2039:gst_h264_parse_pps: failed to read SE
</h264parse0></h264parse0></h264parse0></h264parse0>I’ll try playing around with the options and report back.
-
Unable to record video using FFMPEG in Python
23 mai 2019, par user1932747I have this animation generated using python. And once it generates, it’s supposed to make a a video. I’ve gotten as far as creating the file, however I get a traceback error. And when I attempt to open the file, there’s nothing in it.
Windows 10, running python 3.
I’ve messed with the PATH of ffmpeg, placed it directly in the folder. I removed a piece of code that generated a unique file name. And replaced it with a string. No file was being generated at all prior to that.
I also tried to change the codecs, still nothing.
The code that creates video :
plt.show()
animation.save('Output_Test.mp4', fps=30, extra_args=['-vcodec', 'libx264'])I expect to just get a video that says Output_Test.mp4. Which I do get, but it’s empty.
Traceback Error :
Traceback (most recent call last):
File "C:\Users\andre\OneDrive\Desktop\FranchiseRevenueComparison-master\FranchiseAnimation.py", line 277, in <module>
animation.save('Output_Test.mp4', fps=30, extra_args=['-vcodec', 'libx264'])
File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\animation.py", line 1139, in save
anim._init_draw()
File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\animation.py", line 1732, in _init_draw
self._draw_frame(next(self.new_frame_seq()))
File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\animation.py", line 1755, in _draw_frame
self._drawn_artists = self._func(framedata, *self._args)
File "C:\Users\andre\OneDrive\Desktop\FranchiseRevenueComparison-master\FranchiseAnimation.py", line 259, in animate
self.ax.figure.canvas.draw()
File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 10, in draw
_backend_tk.blit(self._tkphoto, self.renderer._renderer, (0, 1, 2, 3))
File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\backends\_backend_tk.py", line 77, in blit
photoimage.blank()
File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 3548, in blank
self.tk.call(self.name, 'blank')
_tkinter.TclError: invalid command name "pyimage10"
</module>RESOLVED :
I just had to reverse the order of plot and save.