
Recherche avancée
Autres articles (103)
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang 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. -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
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 (...)
Sur d’autres sites (16872)
-
Is there any memory problem that "Too many active WebGL contents." keeps coming out in my web console
18 novembre 2022, par jerry

Now I'm using RTSP stream with jsmpeg, ffmpeg, node-rtsp-stream in React.js


I set multiple streaming in react component about 1 to maximum 25


and when I change route to many , It apeard my console


I'm a little afraid of if it caused by memory leak problem


I cannot figure out it is okay or critical problem


Could you tell me how to solve this problem or is it fine



// out of component
const streams: Streams = {};

...

 const { preset } = props;

 const elementsRef = useRef<any>(new Array(preset?.partition).fill(0).map((v) => createRef()));


 // Mount
 useEffect(() => {
 const { JSMpeg } = window;

 const sortedStream = _.sortBy(preset?.stream, ["position"]);
 console.log(sortedStream);


 sortedStream.forEach((v, i: number) => {

 const player = new JSMpeg.Player(v.camera_monitoring.ws, {
 canvas: elementsRef?.current[v.position]?.current, // Canvas should be a canvas DOM element
 });
 console.dir(elementsRef?.current[v.position]?.current);

 streams[v.id] = player;
 });
 }, []);

 // UnMount
 useEffect(() => {
 return () => {
 Object.keys(streams).forEach((v) => {
 console.log("unmount key:", v);
 if (streams[v] !== null) {
 streams[v].destroy();
 streams[v] = null;
 }
 });
 };
 }, []);



... 
</any>


https://github.com/phoboslab/jsmpeg


above library `jsmpeg.min.js` is set by global ( in public directory and set in my html )


actually my code are so many antipattern in contrast react style, To make an excuse, It is my limits of one's ability


-
Is there a way to use youtube-dl in async
8 octobre 2024, par Stam KalyI have an application where I use
zmq
withasyncio
to communicate with the clients who have the ability to download a video withyoutube-dl
to the server. I tried addingawait
toyoutube_dl
's download function but it gave me an error since it was not a coroutine. My code right now is simply looking like this :


import asyncio
import youtube_dl


async def networking_stuff():
 download = True
 while True:
 if download:
 print("Received a request for download")
 await youtube_to_mp3("https://www.youtube.com/watch?v=u9WgtlgGAgs")
 download = False
 print("Working..")
 await asyncio.sleep(2)


async def youtube_to_mp3(url):
 ydl_opts = {
 'format': 'bestaudio/best',
 'postprocessors': [{
 'key': 'FFmpegExtractAudio',
 'preferredcodec': 'mp3',
 'preferredquality': '192',
 }]
 }

 with youtube_dl.YoutubeDL(ydl_opts) as ydl:
 ydl.download([url])


loop = asyncio.get_event_loop()
loop.create_task(networking_stuff())
loop.run_forever()




which gives the following output :



Received a request for download
[youtube] u9WgtlgGAgs: Downloading webpage
[youtube] u9WgtlgGAgs: Downloading video info webpage
[youtube] u9WgtlgGAgs: Extracting video information
[youtube] u9WgtlgGAgs: Downloading MPD manifest
[download] Destination: The Cardigans - My Favourite Game “Stone Version”-u9WgtlgGAgs.webm
[download] 100% of 4.20MiB in 00:03
[ffmpeg] Destination: The Cardigans - My Favourite Game “Stone Version”-u9WgtlgGAgs.mp3
Deleting original file The Cardigans - My Favourite Game “Stone Version”-u9WgtlgGAgs.webm (pass -k to keep)
Working..
Working..
....
Working..
Working..




whereas I would expect the
Working..
message to be printed in betweenyoutube-dl
's messages as well. Am I missing something here or is this impossible withasync
/await
? Isffmpeg
blocking ? If so, can I run the download inasync
without converting tomp3
or is using threads the only way ?

-
UDP Receiver needs to start before udp sender
11 janvier 2020, par user27443I’m trying to send video from a raspberry pi 0w with camera running Raspian Buster to a machine running Ubuntu 18.04. I’m using ffmpeg to encode to h264 using hardware on the raspi end, and then sending the data with
gst-launch-1.0
over UDP. The issue is that if I start the raspi stream, and then start the receiver, the receiver never connects. If I start the receiver and then start the raspi stream, then they connect perfectly.Raspi encode and send command :
ffmpeg -f video4linux2 -framerate 30 -video_size 1280x720 -i /dev/video0 -c:v h264_omx -b:v 2000k -f avi pipe:1 | gst-launch-1.0 --gst-debug=3 fdsrc ! udpsink host=192.168.1.142 port=8090
Receive and decode and display command :
gst-launch-1.0 udpsrc port=8090 ! queue ! h264parse ! avdec_h264 ! xvimagesink sync=false
I’ve looked at the
udpsink
andudpsrc
properties and tried messing around withbuffer-size
,blocksize
, andsync
with no luck. I’ve also tried usingffmpeg
from python to see if the issue was on the receiver side, with the exact same problem.import cv2
cap = cv2.VideoCapture('udp://127.0.0.1:8090',cv2.CAP_FFMPEG)
if not cap.isOpened():
print('VideoCapture not opened')
exit(-1)
while True:
ret, frame = cap.read()
if not ret:
print('frame empty')
break
cv2.imshow('image', frame)
if cv2.waitKey(1)&0XFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()In the end, I might just write a small protocol that toggles the sender if no packets are getting through, but I was hoping that UDP would handle the connection better.
This question seemed simliar : UDP : Client started before Server but didn’t resolve my issue since I don’t have any blocking ability with gstreamer/ffmpeg.