
Recherche avancée
Médias (91)
-
Head down (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Echoplex (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Discipline (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Letting you (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
1 000 000 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
999 999 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
Autres articles (52)
-
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 -
Prérequis à l’installation
31 janvier 2010, parPréambule
Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
Il (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (7733)
-
avformat_write_header() changes my stream's time_base
12 avril 2023, par grekenI have a high framerate camera which can capture >2000 fps. My plan was to assign actual capture timestamps with µs resolution to the frames and encode with H.264 in a matroska file.


So I set the
time_base
of both theAVStream
and theAVCodecContext
to{1, 1'000'000}
. But after callingavformat_write_header(avFormatContext, nullptr)
I notice that the stream'stime_base
is{1, 1'000}
. Now, since my framerate is double this resolution, I get identical consecutive timestamps and half my frames get lost when I extract them from the video file.

Does anyone have an idea why this is happening and what I can do about it ? Preferably in a way that preserves the correct timestamps.


-
How do I exit or kill a running OS process (FFMPEG) started with Node.js without crashing my app ?
18 novembre 2022, par Alula LeakemariamI am developing an express application that starts FFMPEG through nodejs's child_process. The process starts, but when I try deleting specific processes by pid, the whole app crashes and has to be restarted.


I start the stream with this :


const { spawn, exec } = require("child_process");
const execFile = require("child_process").execFile;

function startStream(foo, url, bar) {
 const ls = spawn(`mkdir`, [`$foo`], {
 cwd: `path/to/working/dir`,
 stdio: "inherit",
 });

 const child = execFile(
 "ffmpeg",
 ["-i", url, "-hls_flags", "delete_segments", "-c", "copy", `path/to/file.m3u8`],
 { maxBuffer: Infinity },
 (error, stdout, stderr) => {
 if (error) {
 console.error("stderr: =============================", stderr);
 throw error;
 }
 console.log("stdout: ==========================", stdout);
 }
 );

 const checkProcesses = exec(`ps`, (error, stdout, stderr) => {
 if (error) {
 console.error("stderr: =============================", stderr);
 throw error;
 }
 console.log("stdout: ==========================", stdout);
 });

 return child.pid;
}

module.exports = startStream;



The code below is the results of running the ps command to list the running processes, which lists ffmpeg as one of them. This will also show ffmpeg again for each time I run the function above.


6394 pts/3 00:00:00 bash
 110129 pts/3 00:00:28 npm run start
 110140 pts/3 00:00:00 sh
 110141 pts/3 00:00:38 node
 136730 pts/3 00:00:00 node
 137148 pts/3 00:00:00 ffmpeg
 137358 pts/3 00:00:00 sh
 137359 pts/3 00:00:00 ps




This will also start copying the FFMPEG files to the directory as expected. Afterwards, another endpoint will use the function below to delete the files created and (attempt to) kill the process :


const { spawn, exec } = require("child_process");
const kill = require("tree-kill");

async function endStream(foo, bar, pid) {
 kill(pid, "SIGKILL");

 // Also tried this commented out code below with spawn and exec
 // const killProcessByPid = spawn("kill", ["-9", `${pid}`]);
 
 const ls = exec(`rm -rf ${foo}`, {
 cwd: `./path/to/working/dir`,
 });
}
module.exports = endStream;




I've tried a few variations but the result I get is usually along the lines of this :


Exiting normally, received signal 15.

 at ChildProcess.exithandler (node:child_process:402:12)
 at ChildProcess.emit (node:events:513:28)
 at maybeClose (node:internal/child_process:1100:16)
 at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5) {
 code: 255,
 killed: false,
 signal: null,
 cmd: 'ffmpeg -i <url>.m3u8 -hls_flags delete_segments -c copy path/to/file.m3u8'
}
[nodemon] app crashed - waiting for file changes before starting..

</url>


I only started using exec/execFile/spawn after failing with libraries like fluent-ffmpeg and a few others, though it doesn't look like starting the process causes the same issues that exiting them do.


If there's anything else I can optimize while my code is up, i'd love to hear it. I'm not even sure if this code will have success with many ffmpeg processes running concurrently.


I am running this on linux (ubuntu) right now and eventually plan to deploy the server.


-
avfilter/vf_libplacebo : add flexible crop exprs
1er mai 2023, par Niklas Haasavfilter/vf_libplacebo : add flexible crop exprs
Motivated by a desire to use vf_libplacebo as a GPU-accelerated
cropping/padding/zooming filter. This commit adds support for setting
the `input/target.crop` fields as dynamic expressions.Re-use the same generic variables available to other scale and crop type
filters, and also add some more that we can afford as a result of being
able to set these properties dynamically.It's worth pointing out that `out_t/ot` is currently redundant with
`in_t/t` since it will always contain the same PTS values, but I plan on
changing this in the near future.I decided to also expose `crop_w/crop_h` and `pos_w/pos_h` as variables
in the expression parser itself, since this enables the fairly common
use case of determining dimensions first and then placing the image
appropriately, such as is done in the default behavior (which centers
the cropped/placed region by default).