[jitsi-dev] jibri recording from within Meet


#1

Hi,

I'm having trouble migrating an instance from the old recording
setup (with jirecon, jipopro etc.) to jibri.

What needs to be configured in Meet to make the users of the platform
able to record the conferences with a button, through Meet itself?

The documentation mentions "Configure the Jitsi Meet client to use
jibri" but I'm a but lost at how exactly to do this..

Any help would be welcome,
Thanks

···

--

Yasen Pramatarov
Lindeas Ltd. https://lindeas.com
'working on GNU/Linux ideas'
Professional Jitsi Meet services


#2

First you’ll need a JIBRI instance. This should be a linux box with the ALSA loopback kernel module enabled. See the jibri project for more details and feel free to reach out with questions, as it’s not yet got a packaged version available.

Next you’ll need to configure Jicofo to look for a jibri. This is done in /etc/jitsi/jicofo/sip-communicator.properties and replace YOURDOMAIN with your XMPP domain.

org.jitsi.jicofo.jibri.BREWERY=TheBrewery@conference.YOURDOMAIN

The jibri must be configured to join the same BREWERY muc that is configured for jicofo.

The final change here is to the config.js file which controls the basic functioning of the Jitsi Meet client. There are two values you’ll want to set:

enableRecording: true,
recordingType: 'jibri',

···

On Jun 23, 2016, at 07:40, Yasen Pramatarov <yasen@lindeas.com> wrote:

Hi,

I'm having trouble migrating an instance from the old recording
setup (with jirecon, jipopro etc.) to jibri.

What needs to be configured in Meet to make the users of the platform
able to record the conferences with a button, through Meet itself?

The documentation mentions "Configure the Jitsi Meet client to use
jibri" but I'm a but lost at how exactly to do this..

Any help would be welcome,
Thanks

--
> Yasen Pramatarov
> Lindeas Ltd. https://lindeas.com
> 'working on GNU/Linux ideas'
> Professional Jitsi Meet services

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#3

Thanks, that last part (recordingType) was what I was missing.

But still I can't make it work -- I have a CentOS and a Debian
installs I'm testing on and both get stuck with "unknown format alsa"
in ffmpeg error output.

I guess I have to recompile ffmpeg with alsa support. I'm using ffmpeg
from the distributions (I'm not sure they are Libav, copyright notice
says FFmpeg), 2.6.8 on CentOS and 3.0.2 on Debian.

I'm really looking forward for the packaged version (I heard in theCall
that you are working on packaging jibri), so that I can use it to fix
my installs. What package will that be -- an Ubuntu deb, right?

···

On Fri, 24 Jun 2016 09:29:16 -0500 Aaron van Meerten wrote:

First you’ll need a JIBRI instance. This should be a linux box with
the ALSA loopback kernel module enabled. See the jibri project for
more details and feel free to reach out with questions, as it’s not
yet got a packaged version available.

Next you’ll need to configure Jicofo to look for a jibri. This is
done in /etc/jitsi/jicofo/sip-communicator.properties and replace
YOURDOMAIN with your XMPP domain.

org.jitsi.jicofo.jibri.BREWERY=TheBrewery@conference.YOURDOMAIN

The jibri must be configured to join the same BREWERY muc that is
configured for jicofo.

The final change here is to the config.js file which controls the
basic functioning of the Jitsi Meet client. There are two values
you’ll want to set:

enableRecording: true,
recordingType: 'jibri',

--

Yasen Pramatarov
Lindeas Ltd. https://lindeas.com
'working on GNU/Linux ideas'
Professional Jitsi Meet services


#4

Look for "alsa" in the output of ffmpeg -formats. Also, make sure you're using ffmpeg and not avconv. The latter might have slightly different syntax (and we've seen it swallowing syntax errors as well, which is a lot of fun to debug).

Boris

···

On 05/07/16 16:36, Yasen Pramatarov wrote:

On Fri, 24 Jun 2016 09:29:16 -0500 Aaron van Meerten wrote:

First you’ll need a JIBRI instance. This should be a linux box with
the ALSA loopback kernel module enabled. See the jibri project for
more details and feel free to reach out with questions, as it’s not
yet got a packaged version available.

Next you’ll need to configure Jicofo to look for a jibri. This is
done in /etc/jitsi/jicofo/sip-communicator.properties and replace
YOURDOMAIN with your XMPP domain.

org.jitsi.jicofo.jibri.BREWERY=TheBrewery@conference.YOURDOMAIN

The jibri must be configured to join the same BREWERY muc that is
configured for jicofo.

The final change here is to the config.js file which controls the
basic functioning of the Jitsi Meet client. There are two values
you’ll want to set:

enableRecording: true,
recordingType: 'jibri',

Thanks, that last part (recordingType) was what I was missing.

But still I can't make it work -- I have a CentOS and a Debian
installs I'm testing on and both get stuck with "unknown format alsa"
in ffmpeg error output.

I guess I have to recompile ffmpeg with alsa support. I'm using ffmpeg
from the distributions (I'm not sure they are Libav, copyright notice
says FFmpeg), 2.6.8 on CentOS and 3.0.2 on Debian.


#5

The packaging I built is actually just for the Python side of things
and will be a Python wheel file which will be installable from PyPi
(this will also install the various entry points as commands in your
system or Python virtualenv). You'll still need a compatible version
of ffmpeg, the correct alsa-loopback kernel modules, and other
dependencies on your system.

There's also an experimental docker container, but it will still
require the loopback kernel modules on the host system so I'm not sure
that will be ready for prime time anytime soon.

—Sam

···

On Tue, Jul 5, 2016 at 4:36 PM, Yasen Pramatarov <yasen@lindeas.com> wrote:

I'm really looking forward for the packaged version (I heard in theCall
that you are working on packaging jibri), so that I can use it to fix
my installs. What package will that be -- an Ubuntu deb, right?

--
Sam Whited
pub 4096R/54083AE104EA7AD3


#6

We are running JIBRI on Ubuntu 16.04

here is the ffmpeg output from our working JIBRI nodes:

ffmpeg version 2.8.6-1ubuntu2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
  configuration: --prefix=/usr --extra-version=1ubuntu2
--build-suffix=-ffmpeg --toolchain=hardened
--libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu
--cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping
--disable-decoder=libopenjpeg --disable-decoder=libschroedinger
--enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libflite --enable-libfontconfig
--enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm
--enable-libmodplug --enable-libmp3lame --enable-libopenjpeg
--enable-libopus --enable-libpulse --enable-librtmp
--enable-libschroedinger --enable-libshine --enable-libsnappy
--enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora
--enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi
--enable-openal --enable-opengl --enable-x11grab --enable-libdc1394
--enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264
--enable-libopencv

Here is the output of apt-cache show ffmpeg

Package: ffmpeg
Priority: optional
Section: universe/video
Installed-Size: 1855
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Multimedia Maintainers <
pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: amd64
Version: 7:2.8.6-1ubuntu2
Replaces: libav-tools (<< 6:12~~), qt-faststart (<< 7:2.7.1-3~)
Depends: libavcodec-ffmpeg56 (>= 7:2.7) | libavcodec-ffmpeg-extra56 (>=
7:2.7), libavdevice-ffmpeg56 (>= 7:2.6), libavfilter-ffmpeg5 (>= 7:2.4),
libavformat-ffmpeg56 (>= 7:2.6), libavresample-ffmpeg2 (>= 7:2.4),
libavutil-ffmpeg54 (>= 7:2.5), libc6 (>= 2.14), libpostproc-ffmpeg53 (>=
7:2.4), libsdl1.2debian (>= 1.2.11), libswresample-ffmpeg1 (>= 7:2.4),
libswscale-ffmpeg3 (>= 7:2.4), libvdpau1 (>= 0.2), libx11-6
Suggests: ffmpeg-doc
Breaks: libav-tools (<< 6:12~~), qt-faststart (<< 7:2.7.1-3~)
Filename: pool/universe/f/ffmpeg/ffmpeg_2.8.6-1ubuntu2_amd64.deb
Size: 1288006
MD5sum: efa329b36bf5bdcd977eb6780efda12a
SHA1: 14d93e6d8ef110e1b176fbeea5b029ef01f6c1a6
SHA256: 370bd52849f2ce54f81743070f5c9b3cfbe8fd63af8bded0de9c7a0f4c888915
Description-en: Tools for transcoding, streaming and playing of multimedia
files
FFmpeg is the leading multimedia framework, able to decode, encode,
transcode,
mux, demux, stream, filter and play pretty much anything that humans and
machines have created. It supports the most obscure ancient formats up to
the
cutting edge.
.
This package contains:
  * ffmpeg: a command line tool to convert multimedia files between formats
  * ffserver: a multimedia streaming server for live broadcasts
  * ffplay: a simple media player based on SDL and the FFmpeg libraries
  * ffprobe: a simple multimedia stream analyzer
  * qt-faststart: a utility to rearrange Quicktime files
Description-md5: 032ff4ee68b923f5137379a7857cb8a8
Multi-Arch: foreign
Homepage: https://ffmpeg.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
Task: edubuntu-desktop-gnome, ubuntustudio-video, ubuntukylin-desktop

···

On Wed, Jul 6, 2016 at 7:53 AM, Sam Whited <sam@samwhited.com> wrote:

On Tue, Jul 5, 2016 at 4:36 PM, Yasen Pramatarov <yasen@lindeas.com> > wrote:
> I'm really looking forward for the packaged version (I heard in theCall
> that you are working on packaging jibri), so that I can use it to fix
> my installs. What package will that be -- an Ubuntu deb, right?

The packaging I built is actually just for the Python side of things
and will be a Python wheel file which will be installable from PyPi
(this will also install the various entry points as commands in your
system or Python virtualenv). You'll still need a compatible version
of ffmpeg, the correct alsa-loopback kernel modules, and other
dependencies on your system.

There's also an experimental docker container, but it will still
require the loopback kernel modules on the host system so I'm not sure
that will be ready for prime time anytime soon.

—Sam

--
Sam Whited
pub 4096R/54083AE104EA7AD3

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#7

I almost made it work on CentOS (I had to edit the shell scripts, some
ubuntu-centric or bash/dash issues; I'll see to check and fix these in
a proper way later and submit the patches).

I have two more questions -- where do the recorded files end up and
how o I get rid of the popup with streaming token? I need to have
control over the file location and name.

Thanks for the help guys!
Rock on!

···

On Tue, 5 Jul 2016 16:45:41 -0500 Boris Grozev wrote:

On 05/07/16 16:36, Yasen Pramatarov wrote:

On Fri, 24 Jun 2016 09:29:16 -0500 Aaron van Meerten wrote:

First you’ll need a JIBRI instance. This should be a linux box with
the ALSA loopback kernel module enabled. See the jibri project for
more details and feel free to reach out with questions, as it’s not
yet got a packaged version available.

Next you’ll need to configure Jicofo to look for a jibri. This is
done in /etc/jitsi/jicofo/sip-communicator.properties and replace
YOURDOMAIN with your XMPP domain.

org.jitsi.jicofo.jibri.BREWERY=TheBrewery@conference.YOURDOMAIN

The jibri must be configured to join the same BREWERY muc that is
configured for jicofo.

The final change here is to the config.js file which controls the
basic functioning of the Jitsi Meet client. There are two values
you’ll want to set:

enableRecording: true,
recordingType: 'jibri',

Thanks, that last part (recordingType) was what I was missing.

But still I can't make it work -- I have a CentOS and a Debian
installs I'm testing on and both get stuck with "unknown format
alsa" in ffmpeg error output.

I guess I have to recompile ffmpeg with alsa support. I'm using
ffmpeg from the distributions (I'm not sure they are Libav,
copyright notice says FFmpeg), 2.6.8 on CentOS and 3.0.2 on Debian.

Look for "alsa" in the output of ffmpeg -formats. Also, make sure
you're using ffmpeg and not avconv. The latter might have slightly
different syntax (and we've seen it swallowing syntax errors as well,
which is a lot of fun to debug).

--

Yasen Pramatarov
Lindeas Ltd. https://lindeas.com
'working on GNU/Linux ideas'
Professional Jitsi Meet services


#8

Hey Yaska,

···

On 19/07/16 11:22, Yasen Pramatarov wrote:

On Tue, 5 Jul 2016 16:45:41 -0500 Boris Grozev wrote:

On 05/07/16 16:36, Yasen Pramatarov wrote:

On Fri, 24 Jun 2016 09:29:16 -0500 Aaron van Meerten wrote:

First you’ll need a JIBRI instance. This should be a linux box with
the ALSA loopback kernel module enabled. See the jibri project for
more details and feel free to reach out with questions, as it’s not
yet got a packaged version available.

Next you’ll need to configure Jicofo to look for a jibri. This is
done in /etc/jitsi/jicofo/sip-communicator.properties and replace
YOURDOMAIN with your XMPP domain.

org.jitsi.jicofo.jibri.BREWERY=TheBrewery@conference.YOURDOMAIN

The jibri must be configured to join the same BREWERY muc that is
configured for jicofo.

The final change here is to the config.js file which controls the
basic functioning of the Jitsi Meet client. There are two values
you’ll want to set:

enableRecording: true,
recordingType: 'jibri',

Thanks, that last part (recordingType) was what I was missing.

But still I can't make it work -- I have a CentOS and a Debian
installs I'm testing on and both get stuck with "unknown format
alsa" in ffmpeg error output.

I guess I have to recompile ffmpeg with alsa support. I'm using
ffmpeg from the distributions (I'm not sure they are Libav,
copyright notice says FFmpeg), 2.6.8 on CentOS and 3.0.2 on Debian.

Look for "alsa" in the output of ffmpeg -formats. Also, make sure
you're using ffmpeg and not avconv. The latter might have slightly
different syntax (and we've seen it swallowing syntax errors as well,
which is a lot of fun to debug).

I almost made it work on CentOS (I had to edit the shell scripts, some
ubuntu-centric or bash/dash issues; I'll see to check and fix these in
a proper way later and submit the patches).

I have two more questions -- where do the recorded files end up and
how o I get rid of the popup with streaming token? I need to have
control over the file location and name.

Currently jibri just streams to youtube and doesn't store files (which is why the stream id is required). You can easily save the files to disk by changing the rtmp: url in the start script with a path to a file.

Not sure how to disable the stream id pop-up. You can try to hack-in a random value in the client.

Boris