
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (34)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (8180)
-
Gstreamer video increases latency with decresed FPS
19 novembre 2024, par Ri DiI am using RPI 5 to stream the video :


rpicam-vid -t 0 --camera 0 --nopreview --mode 2304:1296:10:P --codec yuv420 --width 640 --height 360 --framerate 10 --rotation 0 --autofocus-mode manual --inline --listen -o - | ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 640x360 -r 10 -i /dev/stdin -c:v libx264 -preset ultrafast -tune zerolatency -maxrate 300k -bufsize 50k -g 30000 -f mpegts tcp://192.168.0.147:1234



View it with :


gst-launch-1.0 -v tcpserversrc host=0.0.0.0 port=1234 ! queue ! tsdemux ! h264parse ! avdec_h264 ! videorate ! video/x-raw,framerate=10/1 ! videoconvert ! autovideosink sync=false



Problem is that with 10 FPS I get around 2s of latency ! While 56 or 120 FPS results in below 300ms latency.


Is the problem in sender or reader side ? Or both ?


I am not planning to use the 10 FPS, its only for demonstration of problem. But I would like to get lower latency at 56 FPS - just like at 120 FPS (around 80-100 ms difference) or maybe even better, as it seems to get lower with higher FPS.


Maybe there is some kind of buffering parameter which holds frames ?


(of course, when testing with higher FPS I change both numbers in sender and the one in reader command. The camera is v3 RPI official)


Also I'd like to mention that same thing happens with ffplay :


ffplay -i -probesize 3000 tcp://0.0.0.0:1234/?listen



-
avcodec/mpeg12dec : Optimize reading mpeg2 intra escape codes
8 octobre 2020, par Andreas Rheinhardtavcodec/mpeg12dec : Optimize reading mpeg2 intra escape codes
Said escape code is only six bits long, so that one has at least 25 - 6
bits in the bitstream reader's cache after reading it ; therefore the
whole following 18 bits (containing the actual code) are already in the
bitstream reader's cache, making it unnecessary to reload the cache.Reviewed-by : Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@gmail.com> -
Python ImageIO : Too many open files
24 août 2017, par orbv12I am using imageio in python in order to open all video files in a directory and convert them to numpy arrays.
Here is the script I am using :
1 from __future__ import print_function
2 from avi_to_numpy import *
3 from os import listdir
4 import numpy as np
5 import imageio
6
7 class_path = '../Diving/'
8 max_frames = 16
9 stride = 8
10 videos = [vid for vid in listdir(class_path)]
11 train = []
12
13 for vid in videos:
14 print(str.format('Loading {}...', vid), end="")
15 filename = class_path + vid
16 reader = imageio.get_reader(filename, 'ffmpeg')
17 frames = []
18
19 for i, im in enumerate(reader):
20 if len(frames) == max_frames:
21 break
22
23 if i % stride == 0:
24 frames.append(im)
25
26 reader.close()
27 train.append(np.array(frames))
28 print('done')
29
30
31 print(len(train))Eventually this script crashes with the following error output :
Traceback (most recent call last):
File "load_class_test.py", line 16, in <module>
reader = imageio.get_reader(filename, 'ffmpeg')
File "/usr/local/lib/python2.7/site-packages/imageio/core/functions.py", line 111, in get_reader
return format.get_reader(request)
File "/usr/local/lib/python2.7/site-packages/imageio/core/format.py", line 158, in get_reader
return self.Reader(self, request)
File "/usr/local/lib/python2.7/site-packages/imageio/core/format.py", line 207, in __init__
self._open(**self.request.kwargs.copy())
File "/usr/local/lib/python2.7/site-packages/imageio/plugins/ffmpeg.py", line 260, in _open
self._initialize()
File "/usr/local/lib/python2.7/site-packages/imageio/plugins/ffmpeg.py", line 326, in _initialize
stdout=sp.PIPE, stderr=sp.PIPE)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1223, in _execute_child
errpipe_read, errpipe_write = self.pipe_cloexec()
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1175, in pipe_cloexec
r, w = os.pipe()
OSError: [Errno 24] Too many open files
</module>I am closing the Reader object from imageio. It seems as if the files opened by ffmpeg are not being closed properly.
Is there an obvious step I am missing here ? Am I closing the files properly ?
EDIT : Found temporary solution. Opened a new issue on github.
I was able to resolve the issue by uncommenting the following lines of code from ’imageio/plugins/ffmpeg.py’ :
381 def _close_streams(self):
382 for std in (self._proc.stdin,
383 self._proc.stdout,
384 self._proc.stderr):
385 try:
386 std.close()
387 except Exception: # pragma: no cover
388 passI then added a call to the above function in
_close(self)
:271 def _close(self):
272 self._terminate(0.05) # Short timeout
273 self._close_streams()
274 self._proc = NoneI am not sure what the side effects of doing this are, but it provides a solution for me.
Here is the link to the issue : https://github.com/imageio/imageio/issues/145