【问题标题】:FFMPEG & Node.js Spawn outputs nothingFFMPEG 和 Node.js Spawn 不输出任何内容
【发布时间】:2020-05-04 14:02:26
【问题描述】:

我有以下 Node.js 代码:

var ffmpeg = spawn('ffmpeg', ["-f","v4l2",
                         "-framerate","30",
                         "-video_size","1920x1080",
                         "-i","/dev/video0",
                         "-f","mpegts",
                         "-codec:v","mpeg1video",
                         "-s","1920x1080",
                         "-b:v","3000k",
                         "qscale:v","20",
                         "-bf","0",
                         "http://localhost:8081/DEFAULT",
                         "pipe:1"]);

ffmpeg.stdout.on('data', function(chunk){
    var textChunk = chunk.toString('utf8');
    console.log(textChunk);
});

据我所知,它不会在执行时输出任何内容,也不会生成任何 FFMPEG 进程。

我有什么明显的遗漏吗?

提前致谢

【问题讨论】:

    标签: node.js ffmpeg stdout spawn


    【解决方案1】:

    您的程序没有打印任何内容,因为 ffmpeg 没有向标准输出发送任何内容。如果你也听听 stderr,你就会明白为什么。

    var ffmpeg = spawn('ffmpeg', ["-f","v4l2",
                             "-framerate","30",
                             "-video_size","1920x1080",
                             "-i","/dev/video0",
                             "-f","mpegts",
                             "-codec:v","mpeg1video",
                             "-s","1920x1080",
                             "-b:v","3000k",
                             "qscale:v","20",
                             "-bf","0",
                             "http://localhost:8081/DEFAULT",
                             "pipe:1"]);
    
    ffmpeg.stdout.on('data', function(chunk){
        var textChunk = chunk.toString('utf8');
        console.log(textChunk);
    });
    
    ffmpeg.stderr.on('data', function(chunk){
        var textChunk = chunk.toString('utf8');
        console.error(textChunk);
    });
    

    对我来说这个输出

    ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
      built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
      configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
    
      libavutil      56. 31.100 / 56. 31.100
      libavcodec     58. 54.100 / 58. 54.100
      libavformat    58. 29.100 / 58. 29.100
      libavdevice    58.  8.100 / 58.  8.100
      libavfilter     7. 57.100 /  7. 57.100
      libavresample   4.  0.  0 /  4.  0.  0
      libswscale      5.  5.100 /  5.  5.100
      libswresample   3.  5.100 /  3.  5.100
      libpostproc    55.  5.100 / 55.  5.100
    Unknown input format: 'v4l2'
    

    -hide_banner 标志添加到 ffmpeg 参数列表将删除除实际错误消息之外的所有内容。

    【讨论】:

    • 我还应该提到fluent-ffmpeg,这可能会让你在Node.js中使用ffmpeg时更轻松。
    【解决方案2】:

    相机断开连接时发生的事件是什么,我试试这个:

    this.stream.on("close",code => {
                console.log(chalk.blue(`child process closed with code ${code}`));
            });
    

    不行,这个:

    this.stream.on("error", error => {
       console.log(chalk.red(`error: ${error}`));
    });
    

    还有这个:

    this.stream.on("disconnect", code => {
            console.log(chalk.blue(`child process disconnect with code ${code}`));
    });
    

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多