express(express 4)を使用してnodejsサーバを実行しています。私は、要求に応じて、数台のIPカメラからビデオをラボに保存したいと考えています。すべてが機能しますが、動画が長すぎると保存されません(上限は11Mと思われます)。10M以降ffmpegがnodejsのビデオの保存を停止します
ffmpeg -i rtsp://192.168.1.189:554/ch01_sub.264 -strict -2 -vcodec
copy -vcodec copy test.mp4
とこの作品:
は、私が唯一のコマンドラインを使用してみました。しかし、私はすぐに私は(これはノードパーサ、急行でいないコードであることに注意してサーバーを実行しているとき、私は同じエラーを取得します)ノードを使用してトラブルに巻き込ま: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});
これはtest.mp4まで走ります約11Mです。 tmpProcessは強制終了されず、実行され続けます。しかし、test.mp4が一定の大きさの後、私はそれを再生できません。 「このファイルには再生可能なストリームが含まれていません」というエラーが表示されます。 (これはTotemからのものですが、VLCはどちらも動作しません)。
maxBufferを変更しても効果がありません。どのバッファがオーバーフローしているのか理解しようとしていますが、ノードのAPIのマニュアルから多くの情報を得ることはできません。あなたはオプション{ stdio : 'ignore' }
でchild_process.spawn()
を呼び出す
コマンドのスタンドアロン版は、多くの(デバッグ?)出力を生成しますか?もしそうなら、 'tmpProcess。{stdout、stderr}'(両方に 'data'イベントリスナを追加すること)を読まなければならないか、' stdio: 'ignore''をオプションとして使う必要があります。 'maxBuffer'は' .spawn() 'に使われていないようです。 – robertklep
あなたは正しかった!なぜあなたは答えとしてそれを書かないのですか?あなたはその質問に答えました。 – cauchy