Создать миниатюру ffmpeg из потока в Node.js - PullRequest
0 голосов
/ 29 мая 2018

Я использую node.js вместе с ffmpeg, чтобы получить поток rtmp и вывести его в формате 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',
  '[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);

Я не могу создать миниатюру, используя этот подход,Кто-нибудь знает проблему / решение?

1 Ответ

0 голосов
/ 29 мая 2018

У вас есть журнал дополнительных аргументов во второй команде!Вам действительно нужен только ввод, количество кадров и вывод.

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

Документы для -frames:v https://ffmpeg.org/ffmpeg.html#Video-Options

...