Recherche avancée

Médias (1)

Mot : - Tags -/net art

Autres articles (43)

  • 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 (...)

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

  • 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 (6172)

  • Trying to fetch all audio streams with FFmpeg Python

    27 juillet 2022, par Apollo

    I'm using ffmpeg-python to fetch streams from a video and write some parameters (codec_name, resolution, etc.) for each stream into csv.

    


    video = 'test.mkv'
probe = ffmpeg.probe(video)
video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
print(video_stream['codec_long_name'])
audio_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'audio'), None)
...


    


    My problem is that it works well for a video stream, but not for multiple audio (or subtitles) streams. If the video has several audio streams it returns only one audio stream.

    


    I've tried another approach, but it returns some streams 2-3 times and I get duplicates. So if the video sample has 4 audio tracks, I end up with 9 audio streams instread of 4.

    


    audio_streams = []
for audio in (probe['streams']):
    if (audio['codec_type'] == 'audio'):
        audio_streams.append(audio)
        pprint(audio_streams)


    


    All other ideas I tried don't work, I'm new to programming and I'm stuck with it.
How can I get all audio streams from a file without duplicates ?

    


  • How do I get the last line of a popen() callback in every iteration ?

    29 mai 2017, par Mike

    I’m trying to create a progress bar with FFMPEG using php and AJAX. When a user uploads a video file I want to be able to display the current percent until completion. I have managed to get everything working but I have one issue.

    The data returns what I want, but it also returns all the data from the previous iterations... like it just keeps stacking everything on top rather than flushing out the data from previous iterations. I tried to work with tail thinking it would return only the last line, but it did not return anything.

    Here is the code I’m working with :

    encode.php

    $video_path = 'test.mp4';
    $cmd        = 'ffmpeg -i ' . $video_path .' -y -hide_banner output.mp4 2>&1';

    while (@ ob_end_flush());

    $proc = popen($cmd, 'r');

    while (!feof($proc))
    {

       $file = escapeshellarg(fread($proc, 4096));
       //$line = `tail -n 1 $file`; // <-tried this with no luck
       echo fread($file, 4096) . "\n";
       @ flush();
    }
    return 'complete';
    pclose($proc);

    The above code returns :

    // first iteration
    frame=   52 fps= 13 q=29.0 size=     279kB time=00:00:00.10 bitrate=22856.9kbits/s

    // second iteration
    frame=   52 fps= 13 q=29.0 size=     279kB time=00:00:00.10 bitrate=22856.9kbits/s    
    frame=   54 fps= 12 q=29.0 size=     329kB time=00:00:00.16 bitrate=16146.6kbits/s

    // third iteration
    frame=   52 fps= 13 q=29.0 size=     279kB time=00:00:00.10 bitrate=22856.9kbits/s    
    frame=   54 fps= 12 q=29.0 size=     329kB time=00:00:00.16 bitrate=16146.6kbits/s    
    frame=   57 fps= 11 q=29.0 size=     464kB time=00:00:00.26 bitrate=14233.2kbits/s

    As you can see the data stacks, I need only the new line of data, not the data stacking.

    ** EDIT ** this has been marked as a duplicate, rather than me explain how it’s different, I’d like to hear how this is the same thing ? I am not writing to a log file and, like most people, do not feel that’s a good solution.

  • Evolution #3787 : Pouvoir échapper fins de lignes et espaces

    3 juin 2016, par jluc -

    Il est aussi parfois très difficile de manipuler, dans les expressions SPIP, les quotes simples ou doubles ’ ou " ainsi que la virgule.

    Exemple

    #VAL’0000-00-00’ / #VAL"0000-00-00" 


    sont compris comme

    0000-00-00/ 0000-00-00/ 1


    grâce à la magie de SPIP, mais du coup c’est difficile d’intégrer les ’ les " dans les valeurs.

    Pareil pour la virgule, qui étant séparateur d’argument des filtres perturbe la lecture des arguments quand on veut l’utiliser comme simple caractère.

    Il serait pratique de pouvoir les échapper pour que SPIP ne les prenne pas pour des caractères spéciaux.