【问题标题】:Generate ffmpeg thumbnail from stream in Node.js从 Node.js 中的流生成 ffmpeg 缩略图
【发布时间】:2023-03-11 06:58:02
【问题描述】:

我正在使用 node.js 和 ffmpeg 来接收 rtmp-stream 并将其输出为 m3u8-format。

[ '-y',
  '-fflags',
  'nobuffer',
  '-analyzeduration',
  '1000000',
  '-i',
  'rtmp://localhost:1935/live/ANMZJ2ZRUiMhKaAoygRXwAfHe',
  '-c:v',
  'copy',
  '-c:a',
  'aac',
  '-f',
  'tee',
  '-map',
  '0:a?',
  '-map',
  '0:v?',
  '-y',
  '-an',
  '[hls_time=10:hls_list_size=0]./media/live/ANMZJ2ZRUiMhKaAoygRXwAfHe/SX3otgDdf6/index.m3u8|' ]

连同这个功能,我还想输出一个缩略图。我尝试使用以下格式执行此操作,但没有成功。

[ '-y',
  '-fflags',
  'nobuffer',
  '-analyzeduration',
  '1000000',
  '-i',
  'rtmp://localhost:1935/live/ANMZJ2ZRUiMhKaAoygRXwAfHe',
  '-c:v',
  'copy',
  '-c:a',
  'aac',
  '-f',
  'tee',
  '-map',
  '0:a?',
  '-map','0:v?',
  '-y',
  '-an',
  '-vf' ,
  'fps=1',
  'C:/Users/media/out.png'
  '[hls_time=10:hls_list_size=0]./media/live/ANMZJ2ZRUiMhKaAoygRXwAfHe/SX3otgDdf6/index.m3u8|' ]

我将这些信息发送给 ffmpeg 的方式是通过

this.ffmpeg_exec = spawn(ffmpeg_path, args);

我无法使用这种方法创建缩略图。有人知道问题/解决方案吗?

【问题讨论】:

    标签: node.js image video ffmpeg thumbnails


    【解决方案1】:

    您在第二个命令中有一个额外参数的日志!你真的只需要输入、帧数和输出。

    [ '-i',
      'rtmp://localhost:1935/live/ANMZJ2ZRUiMhKaAoygRXwAfHe',
      '-frames:v',
      '1',
      'C:/Users/media/out.png'
    ]
    

    -frames:v 的文档 https://ffmpeg.org/ffmpeg.html#Video-Options

    【讨论】:

    • 你是对的,输出的是图像!但是,然后 HLS (.m3u8) 的输出不起作用。这也可以吗?
    • 这需要作为单独的命令运行,因为它只请求一帧(您显然需要更多帧才能工作)
    猜你喜欢
    • 1970-01-01
    • 2018-06-15
    • 2013-04-18
    • 2013-05-29
    • 2017-10-15
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多