Recherche avancée

Médias (1)

Mot : - Tags -/censure

Autres articles (13)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce 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" ;

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

Sur d’autres sites (4031)

  • error while compiling simple c++ file with libavformat library

    21 février 2023, par Abdo Daood

    i create simple c++ file called test.cpp

    


    #include <iostream>&#xA;#include &#xA;using namespace std;&#xA;&#xA;int main() &#xA;{&#xA;    cout &lt;&lt; "Hello, World!";&#xA;    return 0;&#xA;}&#xA;&#xA;</iostream>

    &#xA;

    and using g++ in terminal to compile test.cpp file with the command :

    &#xA;

    &#xA;

    g++ test.cpp -o test

    &#xA;

    &#xA;

    i get this error =>

    &#xA;

    test.cpp:2:10: fatal error: libavformat\avformat.h: No such file or directory&#xA;    2 | #include &#xA;      |          ^~~~~~~~~~~~~~~~~~~~~~~~&#xA;compilation terminated.&#xA;

    &#xA;

    Notes :&#xA;libavformat\avformat.h path is : /usr/include/x86_64-linux-gnu/libavformat/avformat.h

    &#xA;

    and using ffmpeg version is :

    &#xA;

    $ ffmpeg -version

    &#xA;

    ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers&#xA;built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)&#xA;configuration : —prefix=/usr —extra-version=0ubuntu0.22.04.1 —toolchain=hardened —libdir=/usr/lib/x86_64-linux-gnu —incdir=/usr/include/x86_64-linux-gnu —arch=amd64 —enable-gpl —disable-stripping —enable-gnutls —enable-ladspa —enable-libaom —enable-libass —enable-libbluray —enable-libbs2b —enable-libcaca —enable-libcdio —enable-libcodec2 —enable-libdav1d —enable-libflite —enable-libfontconfig —enable-libfreetype —enable-libfribidi —enable-libgme —enable-libgsm —enable-libjack —enable-libmp3lame —enable-libmysofa —enable-libopenjpeg —enable-libopenmpt —enable-libopus —enable-libpulse —enable-librabbitmq —enable-librubberband —enable-libshine —enable-libsnappy —enable-libsoxr —enable-libspeex —enable-libsrt —enable-libssh —enable-libtheora —enable-libtwolame —enable-libvidstab —enable-libvorbis —enable-libvpx —enable-libwebp —enable-libx265 —enable-libxml2 —enable-libxvid —enable-libzimg —enable-libzmq —enable-libzvbi —enable-lv2 —enable-omx —enable-openal —enable-opencl —enable-opengl —enable-sdl2 —enable-pocketsphinx —enable-librsvg —enable-libmfx —enable-libdc1394 —enable-libdrm —enable-libiec61883 —enable-chromaprint —enable-frei0r —enable-libx264 —enable-shared&#xA;libavutil 56. 70.100 / 56. 70.100&#xA;libavcodec 58.134.100 / 58.134.100&#xA;libavformat 58. 76.100 / 58. 76.100&#xA;libavdevice 58. 13.100 / 58. 13.100&#xA;libavfilter 7.110.100 / 7.110.100&#xA;libswscale 5. 9.100 / 5. 9.100&#xA;libswresample 3. 9.100 / 3. 9.100&#xA;libpostproc 55. 9.100 / 55. 9.100

    &#xA;

    using this command :

    &#xA;

    g&#x2B;&#x2B; `pkg-config --cflags libavformat` test.cpp  `pkg-config --libs libavformat` -o test&#xA;&#xA;

    &#xA;

  • 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;

  • FFmpeg gdigrab failed to capture image

    1er février 2023, par Marek Spišiak

    Hi I am trying to capture desktop with ffmpeg gdigrab. I am using SSH connection to remotely use admin cmd on windows 10 pc. When i execute this command normally it works but remotely it doesnt.

    &#xA;

    ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv

    &#xA;

    error message

    &#xA;

    ffmpeg version 4.4-essentials_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers&#xA;  built with gcc 10.2.0 (Rev6, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband&#xA;  libavutil      56. 70.100 / 56. 70.100&#xA;  libavcodec     58.134.100 / 58.134.100&#xA;  libavformat    58. 76.100 / 58. 76.100&#xA;  libavdevice    58. 13.100 / 58. 13.100&#xA;  libavfilter     7.110.100 /  7.110.100&#xA;  libswscale      5.  9.100 /  5.  9.100&#xA;  libswresample   3.  9.100 /  3.  9.100&#xA;  libpostproc    55.  9.100 / 55.  9.100&#xA;[gdigrab @ 000001f3e781e600] Capturing whole desktop as 1024x768x32 at (0,0)&#xA;[gdigrab @ 000001f3e781e600] Failed to capture image (error 5)&#xA;[gdigrab @ 000001f3e781e600] Could not find codec parameters for stream 0 (Video: bmp, none, 754987 kb/s): unspecified size&#xA;Consider increasing the value for the &#x27;analyzeduration&#x27; (15000000) and &#x27;probesize&#x27; (70000000) options&#xA;Input #0, gdigrab, from &#x27;desktop&#x27;:&#xA;  Duration: N/A, bitrate: 754987 kb/s&#xA;  Stream #0:0: Video: bmp, none, 754987 kb/s, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc&#xA;Output #0, matroska, to &#x27;pipe:&#x27;:&#xA;Output file #0 does not contain any stream&#xA;

    &#xA;

    I tried to increase analyzeduration and probesize to max integer but it doesnt help.

    &#xA;