Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP 0.2

Autres articles (96)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

  • Soumettre bugs et patchs

    10 avril 2011

    Un logiciel n’est malheureusement jamais parfait...
    Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
    Si vous pensez avoir résolu vous même le bug (...)

Sur d’autres sites (9033)

  • Unable to play video recorded from OpenAi Environment

    10 mars 2021, par ipro_ultra

    I am developing some Reinforcement Learning algorithms in python and I am trying to record the environment into a video however I am unable to play the file once I have recorded it and it is only 1KB in size, I have tried an example I found online and this didn't work either so I assume it's a system issue rather than a problem with my code, I have enabled the debugging by running gym.logger.set_level(gym.logger.DEBUG) but this doesn't seem to through anything useful back, below is my code

    


    def replay_episode(self):
    self._env.reset()
    video_recorder = VideoRecorder(self._env, "{}/episode{}.mp4".format(self._output_directory, episode_number), enabled=True)
    for action_taken in self._current_episode_actions:
        self._env.render()
        video_recorder.capture_frame()
        self._env.step(action_taken)
    video_recorder.close()

for i in range(solution.get_episode_count()):
    # AI Stuff
    episode_number = i + 1
    solution.intialise_episode(episode_number)
    profiler.enable()
    while not solution.current_episode_done():
       solution.run_tick()
    solution.train_model()
    profiler.disable()
    export_profiling_results(profiler, '{}/episode{}.csv'.format(solution._output_directory, episode_number))


    # This is the bit we're intrested in
    if solution.current_episode_successful() or episode_number % 50 == 0:
        solution.replay_episode()

    done_time = time.time()
    print("Episode {} Completed in {}s".format(episode_number, done_time-start_time))
    start_time = done_time

solution.close()


    


    Here is the log I get from the environment when the replay_episode() method is called

    


    DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Starting ffmpeg with "ffmpeg -nostats -loglevel error -y -f rawvideo -s:v 600x400 -pix_fmt rgb24 -framerate 30 -i - -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 -vcodec libx264 -pix_fmt yuv420p 
-r 30 data/1003083349/episode50.mp4"
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Capturing video frame: path=data/1003083349/episode50.mp4
DEBUG: Closing video encoder: path=data/1003083349/episode50.mp4


    


    When I attempt to play the video I get the error : This file isn't playable. That might be because the file type is unsupported, the file extension is incorrect, or the file is corrupt. 0xc10100be

    


    Thank you in advance for any responses

    


  • Decoding video frames and sending them to RabbitMQ using FFmpeg

    28 janvier 2023, par viator

    I've built ffmpeg with AMQP support and tried ffmpeg -i /videos/episode.mp4 -f mpegts amqp://localhost which apparently works. But AFAIK mpegts has some muxing overhead, so I don't really know how it splits stream into messages.

    


    Is it possible to decode all the frames from a video and send them one-by-one in some format (say, JPEG or PNG) to RabbitMQ ?

    


  • Making Sure The PNG Gets There

    14 juin 2013, par Multimedia Mike — General

    Rewind to 1999. I was developing an HTTP-based remote management interface for an embedded device. The device sat on an ethernet LAN and you could point a web browser at it. The pitch was to transmit an image of the device’s touch screen and the user could click on the picture to interact with the device. So we needed an image format. If you were computing at the time, you know that the web was insufferably limited back then. Our choice basically came down to GIF and JPEG. Being the office’s annoying free software zealot, I was championing a little known up and coming format named PNG.

    So the challenge was to create our own PNG encoder (incorporating a library like libpng wasn’t an option for this platform). I seem to remember being annoyed at having to implement an integrity check (CRC) for the PNG encoder. It’s part of the PNG spec, after all. It just seemed so redundant. At the time, I reasoned that there were 5 layers of integrity validation in play.

    I don’t know why, but I was reflecting on this episode recently and decided to revisit it. Here are all the encapsulation layers of a PNG file when flung over an ethernet network :


    PNG Network Encapsulation

    So there are up to 5 encapsulations for the data in this situation. At the innermost level is the image data which is compressed with the zlib DEFLATE method. At first, I thought that this also had a CRC or checksum. However, in researching this post, I couldn’t find any evidence of such an integrity check. Further, I don’t think we bothered to compress the PNG data in this project long ago. It was a small image, monochrome, and transferring via LAN, so the encoder could get away with signaling uncompressed data.

    The graphical data gets wrapped up in a PNG chunk and all PNG chunks have a CRC. To transmit via the network, it goes into a TCP frame, which also has a checksum. That goes into an IP packet. I previously believed that this represented another integrity check. While an IP frame does have a checksum, the checksum only covers the IP header and not the payload. So that doesn’t really count towards this goal.

    Finally, the data gets encapsulated into an ethernet frame which has — you guessed it — a CRC.

    I see that other link layer protocols like PPP and wireless ethernet (802.11) also feature frame CRCs. So I guess what I’m saying is that, if you transfer a PNG file over the network, you can be confident that the data will be free of any errors.