Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (33)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

Sur d’autres sites (4724)

  • Anomalie #4562 : Suite #4468 : Unification des CSS pour les boutons et les icônes

    10 février 2021, par RastaPopoulos ♥

    Je vois pas trop où tu veux en venir. Si tu peux ajouter une classe "bouton_supprimer" dans ton HTML ça veut dire que tu peux aussi ajouter une balise #ICONEsupprimer, t’as bien la main dessus. Le 1er paramètre a exactement le même sens que la classe, et il n’est pas amené à changer au fil du temps. Les icônes derrière, peut-être, mais pas le paramètre de la balise.

    Bah non, aucun rapport : une classe CSS, si on parle bien d’une classe qui n’est pas "icone_XXX", mais bien des classes de variante pour dire "ceci est un bouton de suppression", "ceci est un bouton d’édition d’un contenu", "ceci est un bouton de sauvegarde/d’enregistrement"… tout ça ce sont des classes qui donnent juste un sens à ce bouton, sans du tout préjuger de comment on veut le styler.

    Alors que #ICONEtruc ça signifie uniquement : je veux insérer l’icône de ce nom.

    En ce moment tous les gros acteurs se lancent dans le HTML non sémantiques, justement parce que désormais 90% des apps sont générées à base de morceaux autonomes (react etc) qui mélangent contenus et choix graphiques. D’ailleurs même avant les "css utilitaires", tous les gros frameworks poussaient aussi à ça, en obligeant à mettre des "col-4" etc dans le HTML, ce qui inscrit en dur le layout sans pouvoir le changer dans un thème. Je ne trouve pas que ce soit forcément un exemple à suivre. Mon impression est qu’on s’éloigne de plus en plus de la conception de base de la séparation HTML/CSS. Par exemple si on décide ergonomiquement que dans l’admin "tous les boutons pour le sens XXX et YYY doivent avoir leur icône" et puis plus tard à l’utilisation on s’aperçoit que c’est trop lourd et on décide comme bonne pratique "non en fait seulement les boutons pour le sens XXX doivent avoir un picto, mais pas YYY" : alors il faudra aller les retirer partout où on ne les veut plus à la fois core mais tous les plugins. Alors que c’est débile, c’est juste un choix graphique et ergonomique à un instant T. Alors ça dépend des utilisations, parfois c’est logique par rapport à la conception de l’appli (react etc, et encore, on pourrait arguer que justement elles sont parfois mal conçues).

    Le seul problème que je vois c’est que ça peut se retrouver dans des formulaires ou des squelettes utilisés à la fois dans le public et le privé.
    Dans le privé on veut utiliser forcément tel jeu d’icônes, dans le public ça doit pouvoir être surchargeable.

    Au moins pour tous les formulaires, il faut d’après moi considérer qu’ils ne doivent pas être propre à l’admin de SPIP. Cette admin les utilise, c’est une interface par défaut, fournie pour gérer ses contenus. Mais on doit pouvoir les utiliser facilement n’importe où.

    Et c’est un bon exemple de la séparation : ajouter tel picto, c’est un choix de décoration propre à l’admin, parce que dans ce contexte là on veut ajouter un picto à tel endroit. Mais ailleurs, dans le site, etc, peut-être qu’on veut styler autrement. Pas juste changer l’icône (ce qui doit déjà être possible aussi), mais c’est d’autres choix graphiques. C’est bien pour ça que le HTML doit rester neutre et sémantique normalement.

  • Error in Splitting Educational Videos into Segments Using Python (ffmpeg issue) [closed]

    28 décembre 2024, par Yahia Mohamed Hanbal

    I created a Python project to split long educational videos into smaller segments, each focused on a single question. The program uses OCR to detect text on video frames, identifies the word "Question," extracts the number following it, and splits the video whenever the number increases.

    


    here is the video i am tring to split ((video))

    


    Here’s an example of the program’s output :

    


    Video loaded: 14071 frames at 60 FPS, duration: 234.52s  
Frame 480, Time 8.00s, Question: 6  
...  
Frame 12360, Time 206.00s, Question: 7  
Creating segment 1: 8.00s to 206.00s  
Error: module 'ffmpeg' has no attribute 'Error'


    


    I’ve shared the full code in a GitHub repository for reference : Automated Video Scene Cutting.

    


    What the Program Does

    


      

    • Input : A long educational video.
    • 


    • Processing :

        

      • Detects text in each frame using OCR.
      • 


      • Searches for the word "Question" followed by a number.
      • 


      • Monitors when the number increases to identify segment boundaries.
      • 


      


    • 


    • Output : Creates video segments corresponding to individual questions.
    • 


    


    The Problem

    


    The program detects the questions and timestamps correctly, but when it tries to create the segments, I encounter the following error :

    


    Error: module 'ffmpeg' has no attribute 'Error'


    


    What I’ve Tried

    


      

    • Verified the ffmpeg-python library is installed (pip show ffmpeg-python confirms the installation).
    • 


    • Ensured the ffmpeg binary is accessible from the command line.
    • 


    • Reviewed the library documentation to ensure the correct usage of ffmpeg.
    • 


    • Tested with different video files to rule out input-specific issues.
    • 


    


    Environment Details

    


      

    • OS : Windows 11
    • 


    • Python Version : 3.9.13
    • 


    • Key Libraries : ffmpeg-python
    • 


    


    If anyone has insights into resolving this issue or suggestions for alternative approaches to handle this use case, I’d greatly appreciate your help.

    


    Thank you !

    


  • Small discord bot with a set of working music commands, about 6 days ago the play function completely stopped functioning (more below)

    24 février 2021, par TheColoradoKid

    It is a small discord python bot for my server with various features, which had included music commands until they stopped out of the blue without showing any error for the problem.
It uses FFMpeg, and youtubeDl along with pytube to gather the song and store it locally to play it, I have pip updated all of these and they are definitely on the current versions as I have made sure of this online.
Any help or insight anyone could provide would be greatly appreciated. I'm sorry if the code is convoluted in the way it's written I'm still pretty new to coding and this is one of my first proper larger projects.

    


    If you need any information I'm happy to give what I can to help.

    


    Here is the code for the play command :

    


    @client.command()
async def play(ctx, *args):
    global queu
    #global autom
    if not args:
        voice = get(client.voice_clients, guild=ctx.guild)
        if not voice.is_playing():
            server = ctx.message.guild
            voice_channel = server.voice_client
            if queu:
                async with ctx.typing():
                    player = await YTDLSource.from_url(queu[0], loop=client.loop)
                    voice_channel.play(player, after=lambda e: print('Player error: %s' % e) if e else None)

                await ctx.send('**Now playing:** {}'.format(player.title))
                del(queu[0])
                # while autom == True:
                #     try:
                #         a = client.get_command('auto')
                #         await ctx.invoke(a)
                #     except:
                #         print('')
            elif not queu:
                await ctx.send("You can't play if there isn't anything in the queue\nIf auto mode was on it has now been disabled, to use it gain please add to the queue and run ``;auto on``")
                autom = False
    if args:
        global gueu
        search_keywords = ""
        print(args)
        for word in args:
            search_keywords += word
            search_keywords += '+'
        link = "https://www.youtube.com/results?search_query="
        link += search_keywords
        #print(link)
        html = urllib.request.urlopen(link)
        video_ids = re.findall(r"watch\?v=(\S{11})", html.read().decode())
        url = ("https://www.youtube.com/watch?v=" + video_ids[0])
        #print(url)
        queu.append(url)
        #print(queu)
        await ctx.send("``{}`` added to queue!\n If the song doesn't start please either let the current song end and run ``;play``/``;next`` again or run ``;next`` to play now".format(url))
        try:
            p = client.get_command('play')
            await ctx.invoke(p)
        except:
            print('failed')