
Recherche avancée
Médias (1)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (14)
-
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 -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...) -
Le plugin : Gestion de la mutualisation
2 mars 2010, parLe plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
Installation basique
On installe les fichiers de SPIP sur le serveur.
On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
< ?php (...)
Sur d’autres sites (2101)
-
Gstreamer video increases latency with decresed FPS
19 novembre 2024, par Ri DiI am using RPI 5 to stream the video :


rpicam-vid -t 0 --camera 0 --nopreview --mode 2304:1296:10:P --codec yuv420 --width 640 --height 360 --framerate 10 --rotation 0 --autofocus-mode manual --inline --listen -o - | ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 640x360 -r 10 -i /dev/stdin -c:v libx264 -preset ultrafast -tune zerolatency -maxrate 300k -bufsize 50k -g 30000 -f mpegts tcp://192.168.0.147:1234



View it with :


gst-launch-1.0 -v tcpserversrc host=0.0.0.0 port=1234 ! queue ! tsdemux ! h264parse ! avdec_h264 ! videorate ! video/x-raw,framerate=10/1 ! videoconvert ! autovideosink sync=false



Problem is that with 10 FPS I get around 2s of latency ! While 56 or 120 FPS results in below 300ms latency.


Is the problem in sender or reader side ? Or both ?


I am not planning to use the 10 FPS, its only for demonstration of problem. But I would like to get lower latency at 56 FPS - just like at 120 FPS (around 80-100 ms difference) or maybe even better, as it seems to get lower with higher FPS.


Maybe there is some kind of buffering parameter which holds frames ?


(of course, when testing with higher FPS I change both numbers in sender and the one in reader command. The camera is v3 RPI official)


Also I'd like to mention that same thing happens with ffplay :


ffplay -i -probesize 3000 tcp://0.0.0.0:1234/?listen



-
Gstreamer video increases latency with decreased FPS
19 novembre 2024, par Ri DiI am using RPI 5 to stream the video :


rpicam-vid -t 0 --camera 0 --nopreview --mode 2304:1296:10:P --codec yuv420 
 --width 640 --height 360 --framerate 10 --rotation 0 
 --autofocus-mode manual --inline --listen -o - | 
 ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 640x360 -r 10 -i /dev/stdin 
 -c:v libx264 -preset ultrafast -tune zerolatency -maxrate 300k 
 -bufsize 50k -g 30000 -f mpegts tcp://192.168.0.147:1234



View it with :


gst-launch-1.0 -v tcpserversrc host=0.0.0.0 port=1234 ! queue ! 
 tsdemux ! h264parse ! avdec_h264 ! videorate ! video/x-raw,framerate=10/1 ! 
 videoconvert ! autovideosink sync=false



Problem is that with 10 FPS I get around 2s of latency ! While 56 or 120 FPS results in below 300ms latency.


Is the problem in sender or reader side ? Or both ?


I am not planning to use the 10 FPS, its only for demonstration of problem. But I would like to get lower latency at 56 FPS - just like at 120 FPS (around 80-100 ms difference) or maybe even better, as it seems to get lower with higher FPS.


Maybe there is some kind of buffering parameter which holds frames ?


(of course, when testing with higher FPS I change both numbers in sender and the one in reader command. The camera is v3 RPI official)


Also I'd like to mention that same thing happens with ffplay :


ffplay -i -probesize 3000 tcp://0.0.0.0:1234/?listen



-
ffmpeg process 20564 successfully terminated with return code of 3436169992
18 janvier, par DeeroyTrying to play a youtube video as audio through a discord bot. I ran into a 403 forbidden error and added the YDL_OPTIONS to bypass this. Now the code throws the error code 3436169992.The bot writes to the server "now playing : xxxx" but no audio is played. Any pointers ?


FFMPEG_OPTIONS = {
 "before_options": "-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5",
 "options": "-vn -filter:a \"volume=0.25\""
}

# yt-dlp options
YDL_OPTIONS = {
 "format": "bestaudio[ext=webm][acodec=opus]/bestaudio",
 "noplaylist": True,
 "quiet": True,
 "extract_flat": False,
 "no_warnings": True,
 "source_address": "0.0.0.0" # Prevents YouTube throttling
}

voice_clients = {}

@bot.event
async def on_message(message):
 if message.content.startswith("-play"):
 try:
 # Ensure the user is in a voice channel
 if not message.author.voice:
 await message.channel.send("You need to be in a voice channel to use this command.")
 return

 # Connect to the user's voice channel if not already connected
 if message.guild.id not in voice_clients or not voice_clients[message.guild.id].is_connected():
 voice_client = await message.author.voice.channel.connect()
 voice_clients[message.guild.id] = voice_client
 else:
 voice_client = voice_clients[message.guild.id]

 # Extract the YouTube URL from the command
 url = message.content.split()[1]

 # Download and extract audio using yt-dlp
 with YoutubeDL(YDL_OPTIONS) as ydl:
 info = ydl.extract_info(url, download=False)
 audio_url = info["url"]
 title = info.get("title", "Unknown Title")

 # Debug: Print the extracted audio URL
 print(f"Audio URL: {audio_url}")

 # Play the audio using FFmpeg
 source = FFmpegPCMAudio(audio_url, **FFMPEG_OPTIONS)
 voice_client.play(source, after=lambda e: print("Playback finished."))

 # Notify the user
 await message.channel.send(f"Now playing: {title}")

 except Exception as e:
 print(f"Error: {e}")
 await message.channel.send("An error occurred while trying to play the audio.")