Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

9. Опубликован поток от Bob

Объединение записанных потоков при помощи ffmpeg

Файлы записей потоков могут быть объединены при помощи ffmpeg с сохранением хронологического порядка. Для этого при создании потока при помощи метода setTimeShift() указывается его сдвиг относительно времени создания комнаты, по умолчанию:

Code Block
languagejs
themeRDark
stream.setTimeShift(new Date().getTime() - room.getCreateDate().getTime());

Данным методом можно воспользоваться из клиентского приложения.

Записанные таким образом файлы потоков объединяются командой (пример для двух участников)

Code Block
languagebash
themeRDark
ffmpeg -i stream1.mp4 -i stream2.mp4 -filter_complex "[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid];[0:a][1:a]amerge[a]" -map [vid] -map "[a]" -ac 2 -strict -2 -c:v libx264 -crf 23 -preset veryfast output.mp4

Здесь

  • stream1 - поток первого участника
  • stream2 - поток второго участника

Для того, чтобы объединить файлы, полученные в ходе тестирования, введите команду:

Code Block
languagebash
themeRDark
ffmpeg -i stream-34296a60-7b36-11e8-bd9c-31aaed48935e-db8mp51bajcidn9qmcnda3967k.mp4 -i stream-5aeb2351-7b36-11e8-b398-b74e804508b2-g97j81cgrf8h1m7jl7184fa788.mp4 -filter_complex "[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid];[0:a][1:a]amerge[a]" -map [vid] -map "[a]" -ac 2 -strict -2 -c:v libx264 -crf 23 -preset veryfast output.mp4

Воспроизведите файл output.mp4:

Image Added

Image Added