Ich habe einen Nodejs Server mit Express (Express 4) ausgeführt. Ich möchte das Video von einigen IP-Kameras in einem Labor auf Anfrage speichern. Alles funktioniert, aber wenn das Video zu lang ist, wird es nicht gespeichert (das Limit scheint 11M zu sein).nach 10M ffmpeg stoppt das Speichern von Video auf Nodejs
Ich habe versucht, nur über die Befehlszeile:
ffmpeg -i rtsp://192.168.1.189:554/ch01_sub.264 -strict -2 -vcodec
copy -vcodec copy test.mp4
und das funktioniert. Aber ich in Schwierigkeiten geraten, sobald ich Knoten verwenden (. Beachten Sie, dass diese im Knoten-Parser ist, kein Code in ausdrücklich ich die gleichen Fehler, wenn der Server ausgeführt wird):
var child_process = require('child_process');
tmpProcess = child_process.spawn('ffmpeg',['-i','rtsp://192.168.1.189:554/ch01_sub.264','-strict','-2','-vcodec','copy','-vcodec','copy',"test.mp4"],{maxBuffer: 10000});
dies läuft bis test.mp4 ist ungefähr 11M. tmpProcess wird nicht beendet, es läuft weiter. Aber nachdem test.mp4 eine bestimmte Größe hat, kann ich es nicht wiedergeben. Ich erhalte den Fehler "Diese Datei enthält keine abspielbaren Streams." (Dies ist von Totem, aber VLC funktioniert auch nicht).
Das Ändern von maxBuffer hilft nicht. Ich versuche zu verstehen, welchen Puffer ich überflute, aber ich kann nicht viel Info vom Handbuch auf der API des Knotens erhalten.
Generiert die Standalone-Version des Befehls viel (Debugging?)? Wenn dies der Fall ist, müssen Sie wahrscheinlich 'tmpProcess. {Stdout, stderr}' lesen (indem Sie beiden einen 'data' Event Listener hinzufügen) oder' stdio: 'ignore' als Option verwenden. Es sieht so aus, dass 'maxBuffer' nicht für' .spawn() 'verwendet wird. – robertklep
Sie hatten Recht! Warum schreibst du das nicht als Antwort? Du hast die Frage beantwortet. – cauchy