Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (69)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • MediaSPIP Player : les contrôles

    26 mai 2010, par

    Les contrôles à la souris du lecteur
    En plus des actions au click sur les boutons visibles de l’interface du lecteur, il est également possible d’effectuer d’autres actions grâce à la souris : Click : en cliquant sur la vidéo ou sur le logo du son, celui ci se mettra en lecture ou en pause en fonction de son état actuel ; Molette (roulement) : en plaçant la souris sur l’espace utilisé par le média (hover), la molette de la souris n’exerce plus l’effet habituel de scroll de la page, mais diminue ou (...)

Sur d’autres sites (10019)

  • Anomalie #3017 : Gestion des versions de plugins

    6 juillet 2021

    Il y aurait beaucoup de choses à dire là dessus.
    Personnellement je ne suis pas hyper motivé par la chose car en gros on demande au fil du temps de plus en plus à SVP d’être aussi bon que Composer pour la gestion de versions.
    Ça demanderait à refaire completement la logique de SVP.

    - D’abord à interroger une API externe pour obtenir la liste des plugins / paquets compatibles avec notre version de SPIP (plutôt que de passer par des dépots qui contiennent aussi les paquets pour des versions de SPIP qui ne nous concernent pas). Déjà cette partie est à faire (mais c’est pas le plus dur, vu que Eric a déjà fait une partie de job)
    - Ensuite ça veut dire stocker localement (soit en bdd comme maintenant, soit autrement — ce qui serait mieux) l’ensemble des paquets possibles pour chaque plugin : il peut y en avoir un grand nombre (1 par tag en gros…)
    - Et gérer tous les cas supplémentaires de mises à jour que toutes ces possibilités composent.

    Le SAT Solver (https://fr.wikipedia.org/wiki/Probl%C3%A8me_SAT) de SVP n’est déjà pas parfait. Il mériterait d’être refait avec un PHP plus récent. Et peut être utiliser une librairie spécifique pour ce travail mais je ne sais pas si ça existe en PHP, mis à part celui de Composer...

    Bref tout ça pour dire que… à vouloir refaire Composer dans SVP… avec nos moyens humains et connaissances du sujet loin d’être aussi grandes que l’équipe de Composer, j’ai peur qu’on s’enlise.

  • Evolution #4493 (Nouveau) : Ajouter des robots à l’écran de sécurité

    17 mai 2020

    Bonjour,

    J’ai quelques sites qui ont des nombres de visites bizarres (trop grand, d’un facteur 10 à 30 certains jours).

    J’ai fait un patch : https://git.spip.net/RealET/spip/commit/ce2ce832b697ab0754a78e0fc8b298ae1e9c992b
    Mais je ne sais pas comment en faire un PR.

    Pour info, voici un extrait d’awstats pour le serveur concerné :
    Pour info :
    MJ12bot 2 241 164+29470 32.60 Go 17 Mai 2020 - 11:50
    AhrefsBot 1 388 315+9242 28.07 Go 17 Mai 2020 - 11:50
    SemrushBot 1 251 075+74309 23.91 Go 17 Mai 2020 - 11:50
    bingbot 619 488+28872 22.38 Go 17 Mai 2020 - 11:50
    DotBot 394 445+7038 22.52 Go 17 Mai 2020 - 11:50
    Googlebot 297 801+35895 11.64 Go 17 Mai 2020 - 11:50
    crawl 243 784+325 4.66 Go 17 Mai 2020 - 11:39
    MegaIndex.ru 172 567+51 5.41 Go 17 Mai 2020 - 04:50
    BLEXBot 161 178+4405 4.24 Go 17 Mai 2020 - 06:42
    Applebot 136 660+2443 3.20 Go 17 Mai 2020 - 11:50
    robot 129 533+3017 7.80 Go 17 Mai 2020 - 11:50
    empty user agent string 117 782+778 6.55 Go 17 Mai 2020 - 11:49
    Firefox version 10 and lower - various robots 106 252+366 1.87 Go 17 Mai 2020 - 11:50
    qwantify 83 743+3013 3.61 Go 17 Mai 2020 - 11:50
    Unknown robot identified by bot* 53 246+1846 2.25 Go 17 Mai 2020 - 11:37
    spip 46 253 554.75 Mo 17 Mai 2020 - 11:50
    link 44 510+567 761.38 Mo 17 Mai 2020 - 11:50
    Googlebot-Image 36 704 1.24 Go 17 Mai 2020 - 11:48
    facebookexternalhit 35 176+1 1.31 Go 17 Mai 2020 - 11:49
    MSIE 6 - ( Rogue Robot ) 33 090 1.10 Go 17 Mai 2020 - 11:47
    YandexBot 21 272+9245 822.57 Mo 17 Mai 2020 - 11:50
    Unknown robot (identified by hit on robots.txt) 0+27213 98.21 Mo 17 Mai 2020 - 11:48
    LinkpadBot 17 954 289.02 Mo 17 Mai 2020 - 06:46
    infobot 15 038+1887 198.28 Mo 17 Mai 2020 - 04:19
    MSIE 5 - ( Rogue Robot ) 16 110+1 980.04 Mo 17 Mai 2020 - 11:18
    Sogou web spider 14 514+453 239.14 Mo 17 Mai 2020 - 11:49
    ltx71 10 593+3663 378.89 Mo 17 Mai 2020 - 11:50
    BingPreview 11 920 1.87 Go 17 Mai 2020 - 11:40
    nbot 8 476+1023 230.66 Mo 17 Mai 2020 - 11:42
    Apache-HttpClient 7 897+43 99.64 Mo 17 Mai 2020 - 11:01
    Curl 7 752 151.93 Mo 17 Mai 2020 - 11:49
    CFNetwork 7 313 779.65 Mo 17 Mai 2020 - 11:25
    core 7 295+2 174.93 Mo 17 Mai 2020 - 11:35
    oBot 7 064+230 338.14 Mo 17 Mai 2020 - 08:06
    SeznamBot 3 677+3204 148.02 Mo 16 Mai 2020 - 22:36
    twitterbot 4 264+2518 100.64 Mo 17 Mai 2020 - 11:44
    panscient 6 298+397 97.66 Mo 17 Mai 2020 - 06:37
    A PHP script 6 395 13.36 Mo 17 Mai 2020 - 11:50
    archive.org_bot 4 917+385 157.65 Mo 17 Mai 2020 - 11:50
    vagabondo 5 022+12 197.93 Mo 17 Mai 2020 - 09:58
    Feedfetcher-Google 4 808 137.78 Mo 17 Mai 2020 - 11:41
    zend_http_client 4 535 20.98 Mo 17 Mai 2020 - 11:34
    ia_archiver 4 411+98 302.37 Mo 17 Mai 2020 - 03:58
    feed 4 401 127.40 Mo 17 Mai 2020 - 11:45
    dataprovider.com 4 003+167 169.38 Mo 17 Mai 2020 - 10:31
    universalfeedparser 4 156 82.26 Mo 17 Mai 2020 - 11:36
    Baidu ( catchall ) 3 956 260.02 Mo 17 Mai 2020 - 11:11
    coccoc 1 509+2374 33.71 Mo 17 Mai 2020 - 10:37
    python 3 607+87 54.82 Mo 17 Mai 2020 - 11:44
    Mail.RU Bot 1 969+1492 177.25 Mo 17 Mai 2020 - 11:13

  • Why doesn't the ffmpeg output display the stream in the browser ? [closed]

    10 mai 2024, par Tebyy

    Why is it that when I create a livestream in Python using ffmpeg, and then I open the browser and visit the page, the page keeps loading continuously, and in PyCharm logs, I see binary data ? There are no errors displayed, and the code seems correct to me. I even tried saving to a file for testing purposes, and when I play the video, everything works fine. Does anyone know what might be wrong here ?

    


    Code :

    


    def generate_frames():
    cap = cv2.VideoCapture(os.path.normpath(app_root_dir().joinpath("data/temp", "video-979257305707693982.mp4")))
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break

        yield frame


@app.route('/video_feed')
def video_feed():
    ffmpeg_command = [
        'ffmpeg', '-f', 'rawvideo', '-pix_fmt', 'bgr24',
        '-s:v', '1920x1080', '-r', '60',
        '-i', '-', '-vf', 'setpts=2.5*PTS', # Video Speed
        '-c:v', 'libvpx-vp9', '-g', '60', '-keyint_min', '60',
        '-b:v', '6M', '-minrate', '4M', '-maxrate', '12M', '-bufsize', '8M',
        '-crf', '0', '-deadline', 'realtime', '-tune', 'psnr', '-quality', 'good',
        '-tile-columns', '6', '-threads', '8', '-lag-in-frames', '16',
        '-f', 'webm', '-'
    ]
    ffmpeg_process = subprocess.Popen(ffmpeg_command, stdin=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=-1)
    frames_generator = generate_frames()
    for frame in frames_generator:
        ffmpeg_process.stdin.write(frame)
        ffmpeg_process.stdin.flush()

    ffmpeg_process.stdin.close()
    ffmpeg_process.wait()

    def generate_video_stream(process):
        startTime = time.time()
        buffer = []
        sentBurst = False
        for chunk in iter(lambda: process.stderr.read(4096), b''):
            buffer.append(chunk)

            # Minimum buffer time, 3 seconds
            if sentBurst is False and time.time() > startTime + 3 and len(buffer) > 0:
                sentBurst = True
                for i in range(0, len(buffer) - 2):
                    print("Send initial burst #", i)
                    yield buffer.pop(0)

            elif time.time() > startTime + 3 and len(buffer) > 0:
                yield buffer.pop(0)

            process.poll()
            if isinstance(process.returncode, int):
                if process.returncode > 0:
                    print('FFmpeg Error', process.returncode)

                break

    return Response(stream_with_context(generate_video_stream(ffmpeg_process)), mimetype='video/webm', content_type="video/webm; codecs=vp9", headers=Headers([("Connection", "close")]))