Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (34)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately 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, par

    Mediaspip 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, par

    La 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 Di

    I 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 Rheinhardt
    avcodec/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>

    • [DH] libavcodec/mpeg12dec.c
  • Python ImageIO : Too many open files

    24 août 2017, par orbv12

    I 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                     pass

    I 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 = None

    I 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