
Recherche avancée
Autres articles (75)
-
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe 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 (6213)
-
avformat/mov : Add support for demuxing still HEIC images
4 octobre 2023, par Vignesh Venkatasubramanian via ffmpeg-develavformat/mov : Add support for demuxing still HEIC images
They are similar to AVIF images (both use the HEIF container).
The only additional work needed is to parse the hvcC box and put
it in the extradata.With this patch applied, ffmpeg (when built with an HEVC decoder)
is able to decode the files in
https://github.com/nokiatech/heif/tree/gh-pages/content/imagesAlso add a couple of fate tests with samples from
https://github.com/nokiatech/heif_conformance/tree/master/conformance_filesPartially fixes trac ticket #6521.
Signed-off-by : Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by : James Almer <jamrial@gmail.com> -
how to fix Error 'FFmpegPCMAudio' object has no attribute '_process'
30 novembre 2023, par Ma Mefrom ast import alias
import discord
from discord.ext import commands
from youtubesearchpython import VideosSearch
from yt_dlp import YoutubeDL
import asyncio

class music_cog(commands.Cog):
 def __init__(self, bot):
 self.bot = bot
 
 #all the music related stuff
 self.is_playing = False
 self.is_paused = False

 # 2d array containing [song, channel]
 self.music_queue = []
 self.YDL_OPTIONS = {'format': 'bestaudio/best'}
 self.FFMPEG_OPTIONS = {'options': '-vn'}

 self.vc = None
 self.ytdl = YoutubeDL(self.YDL_OPTIONS)

 #searching the item on youtube
 def search_yt(self, item):
 if item.startswith("https://"):
 title = self.ytdl.extract_info(item, download=False)["title"]
 return{'source':item, 'title':title}
 search = VideosSearch(item, limit=1)
 return{'source':search.result()["result"][0]["link"], 'title':search.result()["result"][0]["title"]}

 async 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)
 loop = asyncio.get_event_loop()
 data = await loop.run_in_executor(None, lambda: self.ytdl.extract_info(m_url, download=False))
 song = data['url']
 self.vc.play(discord.FFmpegPCMAudio(song, executable= "ffmpeg.exe", **self.FFMPEG_OPTIONS), after=lambda e: asyncio.run_coroutine_threadsafe(self.play_next(), self.bot.loop))
 
 else:
 self.is_playing = False

 # infinite loop checking 
 async def play_music(self, ctx):
 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 == None or not self.vc.is_connected():
 self.vc = await self.music_queue[0][1].connect()

 #in case we fail to connect
 if self.vc == None:
 await ctx.send("```Could not connect to the voice channel```")
 return
 else:
 await self.vc.move_to(self.music_queue[0][1])
 #remove the first element as you are currently playing it
 self.music_queue.pop(0)
 loop = asyncio.get_event_loop()
 data = await loop.run_in_executor(None, lambda: self.ytdl.extract_info(m_url, download=False))
 song = data['url']
 self.vc.play(discord.FFmpegPCMAudio(song, executable= "ffmpeg.exe", **self.FFMPEG_OPTIONS), after=lambda e: asyncio.run_coroutine_threadsafe(self.play_next(), self.bot.loop,))
 else:
 self.is_playing = False

 @commands.command(name="play", aliases=["p","playing"], help="Plays a selected song from youtube")
 async def play(self, ctx, *args):
 query = " ".join(args)
 try:
 voice_channel = ctx.author.voice.channel
 except:
 await ctx.send("```You need to connect to a voice channel first!```")
 return
 if self.is_paused:
 self.vc.resume()
 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:
 if self.is_playing:
 await ctx.send(f"**#{len(self.music_queue)+2} -'{song['title']}'** added to the queue") 
 else:
 await ctx.send(f"**'{song['title']}'** added to the queue") 
 self.music_queue.append([song, voice_channel])
 if self.is_playing == False:
 await self.play_music(ctx)


 @commands.command(name="pause", help="Pauses the current song being played")
 async def pause(self, ctx, *args):
 if self.is_playing:
 self.is_playing = False
 self.is_paused = True
 self.vc.pause()
 if self.is_paused:
 self.vc.resume()
 self.is_playing = True
 self.is_paused = False

 @commands.command(name = "resume", aliases=["r"], help="Resumes playing with the discord bot")
 async def resume(self, ctx, *args):
 if self.is_paused:
 self.is_paused = False
 self.is_playing = True
 self.vc.resume()

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


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

 if retval != "":
 await ctx.send(f"```queue:\n{retval}```")
 else:
 await ctx.send("```No music in queue```")

 @commands.command(name="clear", aliases=["c", "bin"], help="Stops the music and clears the queue")
 async def clear(self, ctx):
 if self.vc != None and self.is_playing:
 self.vc.stop()
 self.music_queue = []
 await ctx.send("```Music queue cleared```")

 @commands.command(name="stop", aliases=["disconnect", "l", "d"], help="Kick the bot from VC")
 async def dc(self, ctx):
 self.is_playing = False
 self.is_paused = False
 await self.vc.disconnect()
 
 @commands.command(name="remove", help="Removes last song added to queue")
 async def re(self, ctx):
 self.music_queue.pop()
 await ctx.send("```last song removed```")



I think everything is good but there is no sound Can you give me some advice ?

it python code

-
fate/mov : force the native av1 decoder for the avif tests
9 janvier 2024, par James Almer