Recherche avancée

Médias (1)

Mot : - Tags -/géodiversité

Autres articles (92)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

  • Configuration spécifique pour PHP5

    4 février 2011, par

    PHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
    Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
    Modules spécifiques
    Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)

Sur d’autres sites (7986)

  • Still can't install pygame on ubuntu

    1er octobre 2016, par brotheroflogan

    I’ve tried three different ways. The most recent was following instructions here : http://www.pygame.org/wiki/CompileUbuntu

    But when I type in the first line

    sudo apt-get install mercurial python-dev python-numpy ffmpeg \

    I am told that

    E: Package 'ffmpeg' has no installation candidate.

    I continue on with the instructions and I am later told that some of the dependencies are missing (even though those are the ones I had attempted to install moments ago).

    Then when I put in

    sudo python3 setup.py install

    it tells me

    src/_pygame.h:80:20: fatal error: Python.h: No such file or directory
    #include
                       ^
    compilation terminated.
    error: command 'i686-linux-gnu-gcc' failed with exit status 1
  • ffmpeg Error : Pattern type 'glob' was selected but globbing is not support ed by this libavformat build

    14 septembre 2017, par Aryan Naim

    I’m trying to convert group of ".jpg" files acting as individual frames into 1 single mpeg video ".mp4"

    Example parameters i used :

    frame duration  = 2 secs
    frame rate      = 30  fps
    encoder         = libx264 (mpeg)
    input pattern   = "*.jpg"
    output pattern  = video.mp4

    Based on ffmpeg wiki instructions at (https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images), I issued this command :

    ffmpeg -framerate 1/2 -pattern_type glob -i "*.jpg" -c:v libx264 -r 30 -pix_fmt yuv420p video.mp4

    But I’m getting this error :

    [image2 @ 049ab120] Pattern type 'glob' was selected but globbing is not
    supported by this libavformat build *.jpg: Function not implemented

    Which probably means the API pattern matching commands for my build/version have changed. By the way this my windows 32bit ffmpeg download build (ffmpeg-20150702-git-03b2b40-win32-static).

    How can I choose a group of files using pattern matching using ffmpeg ?

  • How to save last 30 seconds of video in py

    5 juin 2024, par Mateus Coelho

    I want the last 30 seconds to be recorded every time I click enter and sent to the cloud. for example, if I click at 00:10:30, I want a video that records from 00:10:00 to 00:10:30 and if I click in sequence at 00:10:32, I need another different video that in its content is recorded from 00:10:02 to 00:10:32.

    


    I think I have a problem where I will always end up recovering from the same buffer in the last 30 seconds. Is there any approach so that whenever I click enter I retrieve a unique video ? Is my current approach the best for the problem ? Or should I use something else ?

    


    import subprocess
import os
import keyboard
from datetime import datetime
from google.cloud import storage

# Configuration
STATE = "mg"
CITY = "belohorizonte"
COURT = "duna"
RTSP_URL = "rtsp://Apertai:130355va@192.168.0.2/stream1"
BUCKET_NAME = "apertai-cloud"
CREDENTIALS_PATH = "C:/Users/Abidu/ApertAI/key.json"

def start_buffer_stream():
    # Command for continuous buffer that overwrites itself every 30 seconds
    buffer_command = [
        'ffmpeg',
        '-i', RTSP_URL,
        '-map', '0',
        '-c', 'copy',
        '-f', 'segment',
        '-segment_time', '30',  # Duration of each segment
        '-segment_wrap', '2',  # Number of segments to wrap around
        '-reset_timestamps', '1',  # Reset timestamps at the start of each segment
        'buffer-%03d.ts'  # Save segments with a numbering pattern
    ]
    return subprocess.Popen(buffer_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

def save_last_30_seconds_from_buffer(buffer_file):
    datetime_now = datetime.now()
    datetime_now_formatted = f"{datetime_now.day:02}{datetime_now.month:02}{datetime_now.year}-{datetime_now.hour:02}{datetime_now.minute:02}"
    output_file_name = os.path.abspath(f"{STATE}-{CITY}-{COURT}-{datetime_now_formatted}.mp4")

    # Copy the most recent buffer segment to the output file
    save_command = [
        'ffmpeg',
        '-i', buffer_file,
        '-c', 'copy',
        output_file_name
    ]
    subprocess.run(save_command, check=True)
    print(f"Saved last 30 seconds: {output_file_name}")
    return output_file_name

def upload_to_google_cloud(file_name):
    client = storage.Client.from_service_account_json(CREDENTIALS_PATH)
    bucket = client.bucket(BUCKET_NAME)
    blob = bucket.blob(os.path.basename(file_name).replace("-", "/"))
    blob.upload_from_filename(file_name, content_type='application/octet-stream')
    print(f"Uploaded {file_name} to {BUCKET_NAME}")
    os.remove(file_name)  # Clean up the local file

def main():
    print("Starting continuous buffer for RTSP stream...")
    start_time = datetime.now()
    buffer_process = start_buffer_stream()
    print("Press 'Enter' to save the last 30 seconds of video...")

    while True:
        # Verify if 30 seconds has passed since start
        if keyboard.is_pressed('enter'):
            print("Saving last 30 seconds of video...")
            elapsed_time = (datetime.now() - start_time).total_seconds()
            # Determine which buffer segment to save
            if elapsed_time % 60 < 30:
                buffer_file = 'buffer-000.ts'
            else:
                buffer_file = 'buffer-001.ts'
            final_video = save_last_30_seconds_from_buffer(buffer_file)
            upload_to_google_cloud(final_video)

if _name_ == "_main_":
    main()