Bonjour,
Je cherche à encapsuler un flux vidéo h264 en mp4.
La source est un child process utilisant la caméra d'un raspberry pi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
let file = fs.createWriteStream(__dirname + "/video.flv");
let args = ["-o", "-", "-t", "10000"];
 
let videoInputProcess = child.spawn("raspivid", args, {
  stdio: ["ignore", "pipe", "inherit"]
});
videoInputProcess.stdout.setEncoding('utf8');
videoInputProcess.stdout
  .pipe(
    child.spawn(
      "ffmpeg",
      ["-i", "pipe:0", "-c:v", "copy", "-f", "flv", "pipe:1"],
      {
        stdio: ["ignore", "pipe", "inherit"]
      }
    ).stdout
  )
  .pipe(file);
Lorsque j'exécute ce code j'ai cette erreur (ffmpeg):
pipe:: Invalid data found when processing input

Visiblement ffmpeg ne reconnait pas les buffer qui arrivent en entrée.
L'erreur est déclenchée juste après que le premier buffer soit arrivé.

Est ce que quelqu'un aurait une solution?
Merci