Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (78)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • 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

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

  • Discord bot leaving voice channel immediately after joining

    17 janvier 2018, par Forb

    I am building a bot for my discord server to play the audio YouTube videos as I haven’t found a reliable bot online.

    The bot connects to my voice channel after I type the !play url command but immediately leaves even if the URL is valid.

    My code is below :

    [Command("play", RunMode = RunMode.Async)]
    public async Task play(string url) {
       IVoiceChannel channel = (Context.User as IVoiceState).VoiceChannel;
       IAudioClient client = await channel.ConnectAsync();

       var output = CreateStream(url).StandardOutput.BaseStream;
       var stream = client.CreatePCMStream(AudioApplication.Music, 128 * 1024);
       output.CopyToAsync(stream);
       stream.FlushAsync().ConfigureAwait(false);
    }

    private Process CreateStream(string url) {
       Process currentsong = new Process();

       currentsong.StartInfo = new ProcessStartInfo {
           FileName = "cmd.exe",
           Arguments = $"/C youtube-dl -o - {url} | ffmpeg -i pipe:0 -ac 2 -f s16le -ar 48000 pipe:1",
           UseShellExecute = false,
           RedirectStandardOutput = true,
           CreateNoWindow = true
       };

       currentsong.Start();
       return currentsong;
    }

    I have tried using just ffmpeg with a file on my PC which was hard coded in, but I had the same result and the bot left the voice channel as soon as it connected.

    I did verify that both ffmpeg and youtube-dl were working by running the commands in a cmd window and they both ran fine.

  • Discord.py music_cog, bot joins channel but plays no sound

    20 juin 2021, par Ozzy

    I have started using python a week ago or so. I have watched all the related videos on YT and checked google pages etc. But still no luck. My bot perfectly joins to the voice channel and when i use play it downloads and presumebly starts the play function but there is no sound or anything, it just joins and waits 1-2 mins then leaves with timeout error.

    


    from discord.ext import commands
import logging

from youtube_dl import YoutubeDL

logging.basicConfig(level=logging.INFO)


class music_cog(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

        # all the music related stuff
        self.is_playing = False

        # 2d array containing [song, channel]
        self.music_queue = []
        self.YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'True', 'no_warnings': 'False'}
        self.FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
                               'options': '-vn'}

        self.vc = ""

    # searching the item on youtube
    def search_yt(self, item):
        with YoutubeDL(self.YDL_OPTIONS) as ydl:
            try:
                info = ydl.extract_info("ytsearch:%s" % item, download=False)['entries'][0]
            except Exception:
                return False

        return {'source': info['formats'][0]['url'], 'title': info['title']}

    def play_next(self):
        if len(self.music_queue) > 0:
            self.is_playing = True

            # get the first url
            m_url = self.music_queue[0][0]['source']

            # remove the first element as you are currently playing it
            self.music_queue.pop(0)

            self.vc.play(discord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())
        else:
            self.is_playing = False

    # infinite loop checking
    async def play_music(self):
        if len(self.music_queue) > 0:
            self.is_playing = True

            m_url = self.music_queue[0][0]['source']

            # try to connect to voice channel if you are not already connected

            if self.vc == "" or not self.vc.is_connected() or self.vc == None:
                self.vc = await self.music_queue[0][1].channel.connect()
            else:
                await self.vc.move_to(self.music_queue[0][1])

            print(self.music_queue)
            # remove the first element as you are currently playing it
            self.music_queue.pop(0)

            self.vc.play(discord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())
        else:
            self.is_playing = False

    @commands.command(name="play", help="Plays a selected song from youtube")
    async def p(self, ctx, *args):
        query = " ".join(args)

        voice_channel = ctx.author.voice
        if voice_channel is None:
            # you need to be connected so that the bot knows where to go
            await ctx.send("Connect to a voice channel!")
        else:
            song = self.search_yt(query)
            if type(song) == type(True):
                await ctx.send(
                    "Could not download the song. Incorrect format try another keyword. This could be due to playlist or a livestream format.")
            else:
                await ctx.send("Song added to the queue")
                self.music_queue.append([song, voice_channel])

                if self.is_playing == False:
                    await self.play_music()

    @commands.command(name="queue", help="Displays the current songs in queue")
    async def q(self, ctx):
        retval = ""
        for i in range(0, len(self.music_queue)):
            retval += self.music_queue[i][0]['title'] + "\n"

        print(retval)
        if retval != "":
            await ctx.send(retval)
        else:
            await ctx.send("No music in queue")

    @commands.command(name="skip", help="Skips the current song being played")
    async def skip(self, ctx):
        if self.vc != "" and self.vc:
            self.vc.stop()
            await ctx.send("Stopped!")
            # try to play next in the queue if it exists
            await self.play_music()
            await ctx.send("Skipped!")


def setup(bot):
    bot.add_cog(music_cog(bot))


    


    I enabled logs to be sure, when it connects there's just that info :

    


    INFO:discord.voice_client:Connecting to voice... | INFO:discord.voice_client:Starting voice handshake... (connection attempt 1)

    


    I have also checked FFMPEG and its Path, tried different codes and methods but even though they work there is no sound. Also I installed discord.py[voice] too.

    


    I appreciate help already, thanks.

    


  • Adding background audio in FFMPEG, but quieting it if there is sound in another channel

    9 septembre 2021, par Connor Bell

    I'm appending several videos together with FFMPEG. Some of these videos have accompanying audio, and some do not.

    


    I'd like to add music in the background, and have found out how to do so from here. However, I'd like the background music to be (let's say 80%) quieter if there is already audio in that video. Note that all videos have a null audio track, so just checking for the existence of an audio track isn't sufficient.

    


    My current process is :

    


      

    • Take source videos, add a null audio source and upscale (The null audio source is required for ffmpeg-concat to work due to a bug, I think)
    • 


    • Combine the videos using ffmpeg-concat
    • 


    


    Preferably, adding the background music should be the third step, as splitting the background music prior to combining the videos sounds more complex, but I may be wrong.