首页 > 解决方案 > ffmpeg:实例中视频未开始流式传输

问题描述

我已经设置了使用ffmpeg. 它在我的本地系统中运行良好。

本地版本

ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)

现场版

ffmpeg version 3.4.6 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (GCC)

GCC 版本

当地的

gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0

居住

gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

在我的本地运行良好的代码

var args = [
            '-y',
            '-re',
            '-i', `${filePath}`,
            '-listen', '1',
            '-s', '640x480',
            '-codec:a', 'aac -strict experimental',
            '-b:a', '44.1k',
            '-preset', 'superfast',
            '-r', '15',
            '-b:v', '1000k',
            '-tune', 'zerolatency',
            '-c:a', 'aac',
            '-ar', '44100',
            '-c:v', 'libx264',
            '-f', 'flv', streamURL
  ];                     
  let ffmpeg = spawn(`ffmpeg`, args);
  ffmpeg.on('exit', (statusCode) => {
       console.log("statusCode ::::::::::::::::::::::::::::::::: ", statusCode);
       if (statusCode === 0) {
             console.log('conversion successful')
       }
   })

   ffmpeg.stderr.on('data', (err) => {
      console.log('err:', new String(err))
   })

   ffmpeg.on('close', function () {
      console.log('finished');
   });

错误 :

ffmpeg -re -i '{MyS3URL}' -c:v libx264 -preset superfast -tune zerolatency -c:a aac -ar 44100 -f flv rtmp://{{instanceIp}}/live/myStream

err: [String: 'ffmpeg version 3.4.6']
err: [String: ' Copyright (c) 2000-2019 the FFmpeg developers']
err: [String: '\n']
err: [String: '  built with gcc 7 (GCC)\n']
err: [String: '  configuration: \n']
err: [String: '  libavutil      55. 78.100 / 55. 78.100\n']
err: [String: '  libavcodec     57.107.100 / 57.107.100\n']
err: [String: '  libavformat    57. 83.100 / 57. 83.100\n  libavdevice    
57. 10.100 / 57. 10.100\n  libavfilter     6.107.100 /  6.107.100\n  
libswscale      4.  8.100 /  4.  8.100\n  libswresample   2.  9.100 /  
2.  9.100\nUnrecognized option \'tune\'.\nError splitting the argument 
list: Option not found\n']
statusCode :::::::::::::::::::::::::::::::::  1
finished

注意: 如您所见,我已经控制了我创建动态 URL 的 URL。

另外,我直接得到了statusCode = 1。当我在本地终端中粘贴相同的 URL 并按 Enter 键时,我的流式传输开始了。

所以问题是为什么它不能在现场工作?

标签: node.jsffmpegvideo-streaming

解决方案


推荐阅读