
Recherche avancée
Autres articles (49)
-
MediaSPIP Core : La Configuration
9 novembre 2010, parMediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...) -
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs
Sur d’autres sites (8391)
-
Make Discord bot play sound from a direct url
20 septembre 2020, par merctraiderI want to make a discordpy bot that plays audio files from a specific link on the internet, rather than from a local directory. It seems that all the other examples use ytdl, but those are for video streaming sites. How should I go about doing this ?


if(voice_channel != None):
 vc = await voice_channel.connect()

 vc.play(discord.FFmpegPCMAudio('http://website/001.mp3'), after=lambda e: print('done', e))
 else:
 await ctx.send("Join a voice channel first.")```



-
Ruby - Threads and Dir[] arrays
17 mars 2016, par Lewis909I have built a ruby script that creates folders, moves a file into that new folder and then invokes a system() call to trigger FFMPEG. I have now turned this into 4 threads so that I can do 4 concurrent transcodes at a time.
Here is an example with 2 threads (minus folder structure creation and file move functions) :
def transcode_process_1
Dir["path/file/source/*.mxf"].each do |f|
random_folder = #code for random folder creation
file_move = #code to move .mxf file to random_folder for processing
system("FFMPEG -i #{random_folder} command 2> /path/file/#{random_filename}.txt")
sleep(2)
end
end
def transcode_process_2
sleep(3)
Dir["path/file/source/*.mxf"].each do |f|
random_folder = #code for random folder creation
file_move = #code to move .mxf file to random_folder for processing
system("FFMPEG -i #{random_folder} command 2> /path/file/#{random_filename}.txt")
sleep(4)
end
end
transcode_thread_1 = Thread.new{transcode_process_1()}
transcode_thread_2 = Thread.new{transcode_process_2()}
transcode_thread_1.join
transcode_thread_2.joinThis iterates through the Dir "path/file/source/" and processes any.mxf files it finds. The issue I am having is that when both threads are running they are adding the same files into the array. This results in FFMPEG stating it cannot locate the file (this is because another thread has processed it and moved it to the temp folder) and creating superfluous folders and log files, basically just making it messy.
My question is how would I go about making sure transcode_thread_2 does not process files that transcode_thread_1 has added to it array ? Is there a way I can get the function to check that the file in the array is still exists ? If it does then carry out the process, if not move on to the next file ?
Thanks
-
ffmpeg doesn't work in heroku using discord.py, how can i solve it ?
20 septembre 2022, par empressI'm making a discord bot with python and it has a music cog. I've just hosted the bot, and everything works perfectly except this cog. Bassically, the problem is that even if the bot is ready with no errors, when I try to play something in one channel with the command
!pl <search></search>
the bot joins the channel, but it doesn't play anything.

I have already add the BuildPacks to heroku (opus, ffmpeg, python) and all the requirements are ready (The music cog worked on my pc when i was building it).


The output in terminal shows "discord.player : ffmpeg process 26 successfully terminated with return code of -11"


I'll upload a few part of my code, which explains it at all.


import discord
from discord.ext import commands
from youtube_dl import YoutubeDL

class music_cog(commands.Cog):
 def __init__(self, bot):
 self.bot = bot
 self.is_playing = False
 self.is_paused = False
 self.music_queue = []
 self.YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist':'True'}
 self.FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
 self.vc = None

 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
 m_url = self.music_queue[0][0]['source']
 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

 async def play_music(self, ctx):
 member = ctx.author
 if len(self.music_queue) > 0:
 self.is_playing = True
 m_url = self.music_queue[0][0]['source']
 if self.vc == None or not self.vc.is_connected():
 self.vc = await self.music_queue[0][1].connect()
 if self.vc == None:
 await ctx.send(f"you need to join a vc {member.mention} !!")
 return
 else:
 await self.vc.move_to(self.music_queue[0][1])
 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", aliases = ["pl"])
 async def play(self, ctx, *args):
 query = " ".join(args)
 await ctx.send(f"Buscando en youtube según {query}...")
 member = ctx.author
 voice_channel = ctx.author.voice.channel
 if voice_channel is None:
 await ctx.send(f"you need to join a vc {member.mention} !!")
 elif self.is_paused
 self.vc.resume()
 else:
 song = self.search_yt(query)
 song_name = song.get("title")
 if type(song) == type(True):
 await ctx.send(f"There was an error {member.mention} !!")
 else:
 await ctx.send('song in the queue "{song_name}" !!')
 self.music_queue.append([song, voice_channel])
 await self.play_music(ctx)



If anyone can help me I would appreciate it so much :(