Recherche avancée

Médias (0)

Mot : - Tags -/publication

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (34)

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (5975)

  • 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")]))



    


  • Inscriptions3 + Champs Extra

    6 août 2018

    Bonjour,

    Voici quelques points liées à l’utilisation de Champs Extra dans Inscription 3. Je vais détailler un peu mais dans l’idée, il s’agit d’adapter l’affichage de champs ou de leur valeur selon leur nature (input, radio, select ou fieldset), pour l’heure cela semble bien pensé pour les inputs et textarea, mais pour le reste ça pèche un peu.

    Page des utilisateurs (ecrire/ ?exec=inscription3_adherents) :

    Bug :
    Les champs fieldset et explication provoque une erreur alors qu’il devrait être ignorer. Il va de soit qu’on ne devrait pas cocher la colonne ’table’ pour ces champs dans la page de configuration, mais malheureusement c’est une erreur fréquente.

    Soucis d’affichage :

    1. Pour les selects, les entêtes des colonnes sont erronées, on voit par exemple ’label_nom_champs’ au lieu du nom du champs
    2. Pour les selects, on voit dans les cellules du tableau et non des valeurs
    3. Les dates sont au format SQL, pas si simple à lire pour les utilisateurs.

    Page de configuration (ecrire/ ?exec=configurer_inscription3) :

    Bug :

    • Dans la première colonne dans la partie des champs extras, le label est vide pour les checkbox, impossible de les identifier sinon par l’ordre dans la liste.
    • Idem avec les champs ’explication’
    • Il faut supprimer les cases à cocher de la colonne ’Table’ pour les champs ’explication’ et ’fieldset’, ils créés l’erreur fatales dans la page des utilisateurs.
    • Il faut supprimer les cases à cocher de la colonne ’Obligatoire’ pour les champs ’explication’ et ’fieldset’, car si ils sont cochés, le formulaire d’inscription ne pas être validé par l’utilisateur, c’est une erreur fréquente chez moi...

    Groupe de champs :

    Par le passé, j’ai voulu exploiter les fieldsets (Groupe de champs) de champs extra, pour grouper des champs...
    Malheureusement, cela ne semble pas être pris en charge par Inscription3.
    Les champs groupés disparaissent de la page de configuration, ils en deviennent inconfigurable...
    Et on perds les options d’affichage conditionnel par groupe par exemple...

    Vous pouvez compter sur moi pour des tests suite à la correction de ces bugs.

    Merci d’avance,

    Jul

  • Running FFMPEG command through Golang exec

    18 décembre 2016, par Jon Stevens

    I need to run an ffmpeg command to create a video from images with a crossfade between images as the transition. The command is derived from this post. I need to run it through the Golang os/exec package. The command I need to run is :

    ffmpeg -loop 1 -t 5 -i img-0.png -loop 1 -t 5 -i img-1.png -loop 1 -t 5 -i img-2.png -filter_complex "[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];[0:v][b1v][1:v][b2v][2:v]concat=n=5:v=1:a=0,format=yuv420p[v]" -map '[v]' -c:v libx264 -pix_fmt yuv420p -r 30 -s 1280x720 -aspect 16:9 -crf 1 -preset ultrafast output.mp4

    If you run this command directly in the terminal, it works just fine. However, it does not work through my code. This is my code that takes a string command and runs it through the os/exec package :

    command := "ffmpeg -loop 1 -t 5 -i img-0.png -loop 1 -t 5 -i img-1.png -loop 1 -t 5 -i img-2.png -filter_complex "[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];[0:v][b1v][1:v][b2v][2:v]concat=n=5:v=1:a=0,format=yuv420p[v]" -map '[v]' -c:v libx264 -pix_fmt yuv420p -r 30 -s 1280x720 -aspect 16:9 -crf 1 -preset ultrafast output.mp4"

    lastQuote := rune(0)
    f := func(c rune) bool {
       switch {
       case c == lastQuote:
           lastQuote = rune(0)
           return false
       case lastQuote != rune(0):
           return false
       case unicode.In(c, unicode.Quotation_Mark):
           lastQuote = c
           return false
       default:
           return unicode.IsSpace(c)
       }
    }
    parts := strings.FieldsFunc(command, f)

    cmd := exec.Command(parts[0], parts[1:]...)
    cmd.Stderr = os.Stderr
    cmd.Stdout = os.Stdout

    err := cmd.Run()
    if err != nil {
       return err
    }

    When I run this, I get the ffmpeg error : No such filter : ’"’, Error configuring filters. I know it has something to do with the quotes that HAVE to be in the video filters, but I have tried everything to get it to work and I can’t figure it out.

    Any help is greatly appreciated !