Recherche avancée

Médias (1)

Mot : - Tags -/iphone

Autres articles (98)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (6549)

  • Revision 104067 : ajout de class "champ" pour éviter certains chevauchements de blocs ...

    11 juin 2018, par chankalan@… — Log

    ajout de class "champ" pour éviter certains chevauchements de blocs dans certains cas : https://www.mail-archive.com/spip-zone@rezo.net/msg43339.html

  • Anomalie #4363 (Nouveau) : mot de passe vide bloque le formulaire de réinitialisation du mot de pa...

    1er août 2019, par cy_altern -

    Scénario type :

    • un administrateur crée des comptes pour de futurs utilisateurs en renseignant nom, mail, login mais SANS mot de passe
    • il envoie un mail à ces utilisateurs en leur donnant l’URL de la page "J’ai perdu mon mot de passe" (.../spip.php ?page=spip_pass) afin qu’ils génèrent leur mot de passe
    • l’utilisateur saisit son mail dans le formulaire de cette page squelettes-dist/formulaires/oubli.html et il se prend en retour "Erreur : vous n’avez plus accès à ce site."
      Pour l’instant la seule alternative est de créer un mot de passe quelconque lors de la création du compte de l’utilisateur.

    Y a t’il une raison valide pour expliquer cette restriction de mot de passe vide à la réinitialisation ?

    Sinon, le patch semble rapide :
    ligne 85 de squelettes-dist/formulaires/oubli.php
    remplacer :

    1. <span class="CodeRay">} elseif ($r[1]['statut'] == '5poubelle' or $r[1]['pass'] == '') {
    2. </span>

    Télécharger


    par

    1. <span class="CodeRay">} elseif ($r[1]['statut'] == '5poubelle') {
    2. </span>

    Télécharger

  • FFMPEG Issue : Video breaks a lot hence the real time video gets distorted and gets a little delayed while streaming on a webpage from drone

    26 mars 2022, par ashiyaa nunhuck

    ****I am trying to detect a face from my drone camera in real time.The video streams successfully but it is delayed and breaks a lot. Is there any solution to this problem ? How can i have a smooth video streaming with little delay and no video breaking in order to succeed in detecting a face ? Your help will be much appreciated.&#xA;Also, this is printed while my code is running: :

    &#xA;

    &#xA;

    INFO:werkzeug:127.0.0.1 - - [27/May/2021 15:16:14] "GET&#xA;/video/streaming HTTP/1.1" 200 -&#xA;INFO:drone_face_recognition_and_tracking.controllers.server :'action' :&#xA;'command', 'cmd' : 'takeOff'&#xA;INFO:drone_face_recognition_and_tracking.models.manage_drone :'action' :&#xA;'send_command', 'command' : 'takeoff' [h264 @ 0x55aa924a2e40] error&#xA;while decoding MB 45 38, bytestream -6 [h264 @ 0x55aa924a2e40]&#xA;concealing 424 DC, 424 AC, 424 MV errors in I frame [h264 @&#xA;0x55aa922a9a00] concealing 687 DC, 687 AC, 687 MV errors in P frame&#xA;[h264 @ 0x55aa923f79c0] left block unavailable for requested intra&#xA;mode [h264 @ 0x55aa923f79c0] error while decoding MB 0 34, bytestream&#xA;1347 [h264 @ 0x55aa923f79c0] concealing 709 DC, 709 AC, 709 MV errors&#xA;in P frame INFO:werkzeug:127.0.0.1 - - [27/May/2021 15:16:17] "POST&#xA;/api/command/ HTTP/1.1" 200 - pipe:0 : corrupt decoded frame in stream&#xA;0&#xA;Last message repeated 2 times [h264 @ 0x55aa922a9a00] error while decoding MB 49 30, bytestream -6 [h264 @ 0x55aa922a9a00] concealing&#xA;900 DC, 900 AC, 900 MV errors in P frame pipe:0 : corrupt decoded frame&#xA;in stream 0&#xA;INFO:drone_face_recognition_and_tracking.models.manage_drone :'action' :&#xA;'receive_response', 'response' : b'ok'&#xA;INFO:drone_face_recognition_and_tracking.controllers.server :'action' :&#xA;'command', 'cmd' : 'faceDetectAndTrack' INFO:werkzeug:127.0.0.1 - -&#xA;[27/May/2021 15:16:21] "POST /api/command/ HTTP/1.1" 200 - [h264 @&#xA;0x55aa924a2e40] left block unavailable for requested intra4x4 mode -1&#xA;[h264 @ 0x55aa924a2e40] error while decoding MB 0 30, bytestream 1624&#xA;[h264 @ 0x55aa924a2e40] concealing 949 DC, 949 AC, 949 MV errors in I&#xA;frame pipe:0 : corrupt decoded frame in stream 0 [h264 @&#xA;0x55aa9244d400] left block unavailable for requested intra mode [h264&#xA;@ 0x55aa9244d400] error while decoding MB 0 12, bytestream 2936 [h264&#xA;@ 0x55aa9244d400] concealing 2029 DC, 2029 AC, 2029 MV errors in I&#xA;frame pipe:0 : corrupt decoded frame in stream 0 [h264 @&#xA;0x55aa924bf700] concealing 1632 DC, 1632 AC, 1632 MV errors in P frame&#xA;pipe:0 : corrupt decoded frame in stream 0 [h264 @ 0x55aa92414280]&#xA;concealing 1571 DC, 1571 AC, 1571 MV errors in P frame

    &#xA;

    &#xA;

    Here is my code :****

    &#xA;

    import logging&#xA;import contextlib&#xA;import os&#xA;import socket&#xA;import subprocess&#xA;import threading&#xA;import time&#xA;import cv2 as cv&#xA;import numpy as np&#xA;&#xA;from drone_face_recognition_and_tracking.models.base import Singleton&#xA;&#xA;logger = logging.getLogger(__name__)&#xA;&#xA;DEFAULT_DISTANCE = 0.30&#xA;DEFAULT_SPEED = 10&#xA;DEFAULT_DEGREE = 10&#xA;&#xA;FRAME_X = int(320)  # try 640&#xA;FRAME_Y = int(240)  # try 480&#xA;FRAME_AREA = FRAME_X * FRAME_Y&#xA;&#xA;FRAME_SIZE = FRAME_AREA * 3&#xA;FRAME_CENTER_X = FRAME_X / 2&#xA;FRAME_CENTER_Y = FRAME_Y / 2&#xA;&#xA;CMD_FFMPEG = (f&#x27;ffmpeg -probesize 32 -hwaccel auto -hwaccel_device opencl -i pipe:0 &#x27;&#xA;              f&#x27;-pix_fmt bgr24 -s {FRAME_X}x{FRAME_Y} -f rawvideo pipe:1&#x27;)&#xA;&#xA;FACE_DETECT_XML_FILE = &#x27;./drone_face_recognition_and_tracking/models/haarcascade_frontalface_default.xml&#x27;&#xA;&#xA;&#xA;def receive_video(stop_event, pipe_in, host_ip, video_port):&#xA;    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock_video:&#xA;        sock_video.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)&#xA;        sock_video.settimeout(.5)&#xA;        sock_video.bind((host_ip, video_port))&#xA;        data = bytearray(2048)&#xA;        while not stop_event.is_set():&#xA;            try:&#xA;                size, addr = sock_video.recvfrom_into(data)&#xA;                # logger.info({&#x27;action&#x27;: &#x27;receive_video&#x27;, &#x27;data&#x27;: data})&#xA;            except socket.timeout as ex:&#xA;                logger.warning({&#x27;action&#x27;: &#x27;receive_video&#x27;, &#x27;ex&#x27;: ex})&#xA;                time.sleep(0.5)&#xA;                continue&#xA;            except socket.error as ex:&#xA;                logger.error({&#x27;action&#x27;: &#x27;receive_video&#x27;, &#x27;ex&#x27;: ex})&#xA;                break&#xA;&#xA;            try:&#xA;                pipe_in.write(data[:size])&#xA;                pipe_in.flush()&#xA;            except Exception as ex:&#xA;                logger.error({&#x27;action&#x27;: &#x27;receive_video&#x27;, &#x27;ex&#x27;: ex})&#xA;                break&#xA;&#xA;&#xA;class Tello_Drone(metaclass=Singleton):&#xA;    def __init__(self, host_ip=&#x27;192.168.10.2&#x27;, host_port=8889,&#xA;                 drone_ip=&#x27;192.168.10.1&#x27;, drone_port=8889,&#xA;                 is_imperial=False, speed=DEFAULT_SPEED):&#xA;        self.host_ip = host_ip&#xA;        self.host_port = host_port&#xA;        self.drone_ip = drone_ip&#xA;        self.drone_port = drone_port&#xA;        self.drone_address = (drone_ip, drone_port)&#xA;        self.is_imperial = is_imperial&#xA;        self.speed = speed&#xA;        self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)&#xA;        self.socket.bind((self.host_ip, self.host_port))&#xA;&#xA;        self.response = None&#xA;        self.stop_event = threading.Event()&#xA;        self._response_thread = threading.Thread(target=self.receive_response, args=(self.stop_event, ))&#xA;        self._response_thread.start()&#xA;&#xA;        self.proc = subprocess.Popen(CMD_FFMPEG.split(&#x27; &#x27;),&#xA;                                     stdin=subprocess.PIPE,&#xA;                                     stdout=subprocess.PIPE)&#xA;        self.proc_stdin = self.proc.stdin&#xA;        self.proc_stdout = self.proc.stdout&#xA;&#xA;        self.video_port = 11111&#xA;&#xA;        self._receive_video_thread = threading.Thread(&#xA;            target=receive_video,&#xA;            args=(self.stop_event, self.proc_stdin,&#xA;                  self.host_ip, self.video_port,))&#xA;        self._receive_video_thread.start()&#xA;&#xA;        self.face_cascade = cv.CascadeClassifier(FACE_DETECT_XML_FILE)&#xA;        self._is_enable_face_detect = False&#xA;&#xA;        self.send_command(&#x27;command&#x27;)&#xA;        self.send_command(&#x27;streamon&#x27;)&#xA;        self.set_speed(self.speed)&#xA;&#xA;    def receive_response(self, stop_event):&#xA;        while not stop_event.is_set():&#xA;            try:&#xA;                self.response, ip = self.socket.recvfrom(3000)&#xA;                logger.info({&#x27;action&#x27;: &#x27;receive_response&#x27;,&#xA;                             &#x27;response&#x27;: self.response})&#xA;            except socket.error as ex:&#xA;                logger.error({&#x27;action&#x27;: &#x27;receive_response&#x27;,&#xA;                             &#x27;ex&#x27;: ex})&#xA;                break&#xA;&#xA;    def __dell__(self):&#xA;        self.stop()&#xA;&#xA;    def stop(self):&#xA;        self.stop_event.set()&#xA;        retry = 0&#xA;        while self._response_thread.is_alive():&#xA;            time.sleep(0.3)&#xA;            if retry > 30:&#xA;                break&#xA;            retry &#x2B;= 1&#xA;        self.socket.close()&#xA;        os.kill(self.proc.pid, 9)&#xA;&#xA;    def send_command(self, command):&#xA;        logger.info({&#x27;action&#x27;: &#x27;send_command&#x27;, &#x27;command&#x27;: command})&#xA;        self.socket.sendto(command.encode(&#x27;utf-8&#x27;), self.drone_address)&#xA;&#xA;        retry = 0&#xA;        while self.response is None:&#xA;            time.sleep(0.3)&#xA;            if retry > 3:&#xA;                break&#xA;            retry &#x2B;= 1&#xA;&#xA;        if self.response is None:&#xA;            response = None&#xA;        else:&#xA;            response = self.response.decode(&#x27;utf-8&#x27;)&#xA;        self.response = None&#xA;        return response&#xA;&#xA;    def takeoff(self):&#xA;        return self.send_command(&#x27;takeoff&#x27;)&#xA;&#xA;    def land(self):&#xA;        return self.send_command(&#x27;land&#x27;)&#xA;&#xA;    def move(self, direction, distance):&#xA;        distance = float(distance)&#xA;        if self.is_imperial:&#xA;            distance = int(round(distance * 30.48))&#xA;        else:&#xA;            distance = int(round(distance * 100))&#xA;        return self.send_command(f&#x27;{direction} {distance}&#x27;)&#xA;&#xA;    def up(self, distance=DEFAULT_DISTANCE):&#xA;        return self.move(&#x27;up&#x27;, distance)&#xA;&#xA;    def down(self, distance=DEFAULT_DISTANCE):&#xA;        return self.move(&#x27;down&#x27;, distance)&#xA;&#xA;    def left(self, distance=DEFAULT_DISTANCE):&#xA;        return self.move(&#x27;left&#x27;, distance)&#xA;&#xA;    def right(self, distance=DEFAULT_DISTANCE):&#xA;        return self.move(&#x27;right&#x27;, distance)&#xA;&#xA;    def forward(self, distance=DEFAULT_DISTANCE):&#xA;        return self.move(&#x27;forward&#x27;, distance)&#xA;&#xA;    def back(self, distance=DEFAULT_DISTANCE):&#xA;        return self.move(&#x27;back&#x27;, distance)&#xA;&#xA;    def set_speed(self, speed):&#xA;        return self.send_command(f&#x27;speed {speed}&#x27;)&#xA;&#xA;    def clockwise(self, degree=DEFAULT_DEGREE):&#xA;        return self.send_command(f&#x27;cw {degree}&#x27;)&#xA;&#xA;    def counter_clockwise(self, degree=DEFAULT_DEGREE):&#xA;        return self.send_command(f&#x27;ccw {degree}&#x27;)&#xA;&#xA;    def video_binary_generator(self):&#xA;        while True:&#xA;            try:&#xA;                frame = self.proc_stdout.read(FRAME_SIZE)&#xA;            except Exception as ex:&#xA;                logger.error({&#x27;action&#x27;: &#x27;video_binary_generator&#x27;, &#x27;ex&#x27;: ex})&#xA;                continue&#xA;&#xA;            if not frame:&#xA;                continue&#xA;&#xA;            frame = np.fromstring(frame, np.uint8).reshape(FRAME_Y, FRAME_X, 3)&#xA;            yield frame&#xA;&#xA;    def enable_face_detect(self):&#xA;        self._is_enable_face_detect = True&#xA;&#xA;    def disable_face_detect(self):&#xA;        self._is_enable_face_detect = False&#xA;&#xA;    def video_jpeg_generator(self):&#xA;        for frame in self.video_binary_generator():&#xA;            if self._is_enable_face_detect:&#xA;                gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)&#xA;                faces = self.face_cascade.detectMultiScale(gray, 1.2, 4)&#xA;                for (x, y, w, h) in faces:&#xA;                    cv.rectangle(frame, (x, y), (x&#x2B;w, y&#x2B;h), (0, 0, 255), 2)&#xA;                    break&#xA;&#xA;            _, jpeg = cv.imencode(&#x27;.jpg&#x27;, frame)&#xA;            jpeg_binary = jpeg.tobytes()&#xA;            yield jpeg_binary&#xA;

    &#xA;