
Recherche avancée
Autres articles (85)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
Sur d’autres sites (10359)
-
ffmpeg-next how can I enable multithreading on a decoder ?
14 décembre 2022, par Brandon PiñaI'm using the rust crate
ffmpeg-next
to decode some video into individual frames for usage in another library. Problem is when I run my test it only seems to use a single core. I've tried modifying the threading configuration for my decoder as you can see below, but It doesn't seem to be do anything

let context_decoder =
 ffmpeg_next::codec::context::Context::from_parameters(input_stream.parameters())?;
 let mut decoder = context_decoder.decoder().video()?;
 let mut threading_config = decoder.threading();
 threading_config.count = num_cpus::get();
 threading_config.kind = ThreadingType::Frame;

 decoder.set_threading(threading_config);



-
Monitor multiple instances of same process
18 décembre 2013, par user3116597I'm trying to monitor multiple instances of the same process. I can't for the life of me do this without running into a problem.
All the examples I have seen so far on the internet involve me writing out the PID or monitoring the process itself. The issue is that if one instance fails, it doesn't mean all the rest have failed as well.
In order for me to write out the PID for each process it would mean I'd probably have to run each process with a short delay to record the correct, seeing as the way I need to record the PID is done through the process name being probed.
If I'm wrong on this, please correct me. But so far I haven't found a way to monitor each individual process, which all have the same name.
To add to the above, the processes are run in a batch script and each one is run in its own screen (ffmpeg would otherwise not be able to run in the background).
If anyone can point me vaguely in the right direction on how to do this in Linux I would really appreciate it. I read somewhere that it would be possible to set up symlinks which would then give me fake process names and that way I can monitor the 'fake' process name.
-
Decode h264 video bytes into JPEG frames in memory with ffmpeg
5 février 2024, par John KarkasI'm using python and ffmpeg (4.4.2) to generate a h264 video stream from images produced continuously from a process. I am aiming to send this stream over websocket connection and decode it to individual image frames at the receiving end, and emulate a stream by continuously pushing frames to an
<img style='max-width: 300px; max-height: 300px' />
tag in my HTML.

However, I cannot read images at the receiving end, after trying combinations of
rawvideo
input format,image2pipe
format, re-encoding the incoming stream withmjpeg
andpng
, etc. So I would be happy to know what the standard way of doing something like this would be.

At the source, I'm piping frames from a while loop into ffmpeg to assemble a h264 encoded video. My command is :


command = [
 'ffmpeg',
 '-f', 'rawvideo',
 '-pix_fmt', 'rgb24',
 '-s', f'{shape[1]}x{shape[0]}',
 '-re',
 '-i', 'pipe:',
 '-vcodec', 'h264',
 '-f', 'rawvideo',
 # '-vsync', 'vfr',
 '-hide_banner',
 '-loglevel', 'error',
 'pipe:'
 ]



At the receiving end of the websocket connection, I can store the images in storage by including :


command = [
 'ffmpeg',
 '-i', '-', # Read from stdin
 '-c:v', 'mjpeg',
 '-f', 'image2',
 '-hide_banner',
 '-loglevel', 'error',
 f'encoded/img_%d_encoded.jpg'
 ]



in my ffmpeg command.


But, I want to instead extract each individual frame coming in the pipe and load in my application, without saving them in storage. So basically, I want whatever is happening at by the
'encoded/img_%d_encoded.jpg'
line in ffmpeg, but allowing me to access each frame in the stdout subprocess pipe of an ffmpeg pipeline at the receiving end, running in its own thread.

- 

- What would be the most appropriate ffmpeg command to fulfil a use case like the above ? And how could it be tuned to be faster or have more quality ?
- Would I be able to read from the stdout buffer with
process.stdout.read(2560x1440x3)
for each frame ?






If you feel strongly about referring me to a more update version of ffmpeg, please do so.


PS : It is understandable this may not be the optimal way to create a stream. Nevertheless, I do not find there should be much complexity in this and the latency should be low. I could instead communicate JPEG images via the websocket and view them in my
<img style='max-width: 300px; max-height: 300px' />
tag, but I want to save on bandwidth and relay some computational effort at the receiving end.