
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (111)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
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 (9798)
-
ffmpeg python causing deadlock
1er août 2024, par sa_penguinI am facing issues using ffmpeg python to process camera frames. My first approach with process.communicate() worked well, but has latency issues.


process = (
 ffmpeg
 .input('pipe:', format='rawvideo', pix_fmt='rgb24', s='{}x{}'.format(width, height))
 .filter()
 .output('pipe:', format='rawvideo', pix_fmt='rgb24')
 .run_async(pipe_stdin=True, pipe_stdout=True, pipe_stderr=True)
 )
out, err = process.communicate(input=img.tobytes())
output_image = np.frombuffer(out, np.uint8).reshape((height, width, channels))



To reduce the latency, I'm trying to keep the ffmpeg process open and feed in camera frames for processing. This runs fine for a couple of minutes with acceptable latency values but ends up in deadlock. What is the best way to fix this ?


import cv2
import numpy as np
import math

import ffmpeg 

def start_ffmpeg_process_async(width, height):
 return (
 ffmpeg
 .input('pipe:', format='rawvideo', pix_fmt='rgb24', s='{}x{}'.format(width, height))
 .filter('<filter variables="variables">')
 .output('pipe:', format='rawvideo', pix_fmt='rgb24')
 .run_async(pipe_stdin=True, pipe_stdout=True, pipe_stderr=True)
 )

def main():

 cap = cv2.VideoCapture(0)

 if not cap.isOpened():
 print("Camera can't open \nExiting...")
 return -1

 ffmpeg_process_async = start_ffmpeg_process_async(cap.get(cv2.CAP_PROP_FRAME_WIDTH), 
 cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
 
 try:
 while True:

 success, img = cap.read() 
 if success:
 height, width, channels = img.shape
 ffmpeg_process_async.stdin.write(img.tobytes())
 raw_output = ffmpeg_process_async.stdout.read(width * height * channels)
 output_image = np.frombuffer(raw_output, np.uint8).reshape((height, width, channels))
 cv2.imshow('Webcam', output_image)
 else:
 print ("Camera read error")
 if cv2.waitKey(1) == ord('q'):
 print ("Exiting . . .")
 break
 finally:
 print ("Finalizing . . .")
 ffmpeg_process_async.stdin.close()
 ffmpeg_process_async.wait()
 cap.release()
 cv2.destroyAllWindows()


if __name__ == "__main__":
 main()
</filter>


-
Anomalie #3593 : pb generer_url_entite si appel dans squelette
14 novembre 2015, par jluc -Oups il y a une erreur dans la proposition précédente.
C’est plutôtif (is_string($public) AND (intval($public) !=1) AND $g = charger_fonction(’connect’, ’urls’, true)) $f = $g ;
C’est testé et OK avec [(#ID_ANNONCE|generer_url_entiteannonce,’’,’’,1)]
Comme beaucoup de squelettes se servent du filtre |oui ou de l’espace pour signifier ’non vide’, on pourrait aussi tester si $public est égal à un espace, ce qui donnerait :
if (is_string($public) AND (intval($public) !=1) AND ($public !=’ ’) AND $g = charger_fonction(’connect’, ’urls’, true)) $f = $g ;
-
Discord.py music bot doesn't play next song in queue
10 mai 2019, par Lewis HThis is my code for the bot I’m trying to create, it plays the music fine.
ytdl_options = {
'format': 'bestaudio/best',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'quiet':True,
'ignoreerrors': False,
'logtostderr': False,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0' # using ipv4 since ipv6 addresses causes issues sometimes
}
# ffmpeg options
ffmpeg_options= {
'options': '-vn'
}
@bot.command()
async def play(ctx, url:str = None):
queue = {}
channel = ctx.author.voice.channel
if ctx.voice_client is not None:
await ctx.voice_client.move_to(channel)
elif ctx.author.voice and ctx.author.voice.channel:
await channel.connect()
if not url:
await ctx.send("Try adding a URL. e.g. !play https://youtube.com/watch?v=XXXXXXXXX")
if ctx.voice_client is not None:
vc = ctx.voice_client #vc = voice client, retrieving it
ytdl = youtube_dl.YoutubeDL(ytdl_options)
loop = asyncio.get_event_loop()
data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url))
if 'entries' in data:
data = data['entries'][0]
svr_id = ctx.guild.id
if svr_id in queue:
queue[svr_id].append(data)
else:
queue[svr_id] = [data]
await ctx.send(data.get('title') + " added to queue")
source = ytdl.prepare_filename(queue[svr_id][0])
def pop_queue():
if queue[svr_id] != []:
queue[svr_id].pop(0)
data = queue[svr_id][0]
else:
vc.stop()
if not vc.is_playing():
vc.play(discord.FFmpegPCMAudio(source, **ffmpeg_options), after=lambda: pop_queue())The next song downloads and queues it fine, but once the first song finishes, it doesn’t play the next one. I can’t figure out how to make it play after the first song has commenced. I have the
after=
set to remove the top item of the queue, but how do I get it to play again ? Thanks