You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by Sonia SWEngineer <sw...@gmail.com> on 2019/05/22 03:25:56 UTC

Questions on Screen Recording

Good day all,
This message is to request your advice on the following questions regarding
Screen Recording:

1- What could be a rough estimate on how much bandwidth is needed for
screen recording with RTMPS using the Java applet?
The NetworkCalculator link below does not specify how much is needed for
screen sharing/recording.
https://openmeetings.apache.org/NetworkCalculator.html

2-Are there open source or commercial options to reduce the length of the
encoded screen data for RTMPS at this time?

Thanks in advance for any advice on this regard.

Re: Questions on Screen Recording

Posted by Sonia SWEngineer <sw...@gmail.com>.
Thanks very much Maxim for your advice.

Best Regards,

Sonia

On Thu, May 23, 2019 at 11:37 PM Maxim Solodovnik <so...@gmail.com>
wrote:

> Hello,
>
> actually OM server code need to be corrected to receive "screen stream"
> from ffmpeg
> It requires some additional parameters to be passed
> And currently some parameter are passed in Red5 specific way [1]
>
> So the implementation I would implement:
> 1) check if ffmpeg is available on client machine
> 2) YES: create ffmpeg process with all required parameters (here is sort of
> example [2]) instead of Java encoder
> 3) NO: use java encoder
> 4*) contribute it back :)))
>
> [1]
>
> https://github.com/apache/openmeetings/blob/4.0.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java#L235
> [2] https://om.alteametasoft.com/openmeetings/docs/ExternalVideo.html
>
>
> On Thu, 23 May 2019 at 11:15, Sonia SWEngineer <sw...@gmail.com>
> wrote:
>
> > Thanks very much Maxim. Yes, I meant better compression so the screen
> data
> > uses less bandwidth.
> > Regarding replacement of the current encoder with ffmpeg:
> > - Can this be achieved by streaming the screen with ffmpeg with options:
> -i
> > :0.0+0,0...-c:v libx264......-f flv rtmps://...?
> > - Or, by continue using the EncodeJob and SendJob logic but compressing
> the
> > image(s) with ffmpeg in the "encode" method before pushing them as
> > videoData?
> > If this is the way, then will ffmpeg need to output a
> ByteArrayOutputStream
> > that is compressed by libx264 in the encode method?
> >
> > Regards,
> >
> > Sonia
> >
> >
> >
> > On Wed, May 22, 2019 at 3:14 AM Maxim Solodovnik <so...@gmail.com>
> > wrote:
> >
> > > Hello Sonia,
> > >
> > > hand-made ScreenV1 codec is being used for screen-share
> > > the size of keyframe is roughly equals to width*height*4*scale (scale
> is
> > > calculated based on selected image quality [1])
> > > non key frame size depends on what was changed
> > >
> > > This hand-made encoder can be replaced with ffmpeg code modification
> will
> > > be required
> > >
> > > Do you mean "better compression" by "reduce the length of the encoded
> > > screen data"?
> > > If so you can use x264 compression, most probably will work better
> > >
> > >
> > > [1]
> > >
> > >
> >
> https://github.com/apache/openmeetings/blob/master/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java#L784
> > >
> > > On Wed, 22 May 2019 at 10:26, Sonia SWEngineer <
> swengineeruser@gmail.com
> > >
> > > wrote:
> > >
> > > > Good day all,
> > > > This message is to request your advice on the following questions
> > > regarding
> > > > Screen Recording:
> > > >
> > > > 1- What could be a rough estimate on how much bandwidth is needed for
> > > > screen recording with RTMPS using the Java applet?
> > > > The NetworkCalculator link below does not specify how much is needed
> > for
> > > > screen sharing/recording.
> > > > https://openmeetings.apache.org/NetworkCalculator.html
> > > >
> > > > 2-Are there open source or commercial options to reduce the length of
> > the
> > > > encoded screen data for RTMPS at this time?
> > > >
> > > > Thanks in advance for any advice on this regard.
> > > >
> > >
> > >
> > > --
> > > WBR
> > > Maxim aka solomax
> > >
> >
>
>
> --
> WBR
> Maxim aka solomax
>

Re: Questions on Screen Recording

Posted by Maxim Solodovnik <so...@gmail.com>.
Hello,

actually OM server code need to be corrected to receive "screen stream"
from ffmpeg
It requires some additional parameters to be passed
And currently some parameter are passed in Red5 specific way [1]

So the implementation I would implement:
1) check if ffmpeg is available on client machine
2) YES: create ffmpeg process with all required parameters (here is sort of
example [2]) instead of Java encoder
3) NO: use java encoder
4*) contribute it back :)))

[1]
https://github.com/apache/openmeetings/blob/4.0.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java#L235
[2] https://om.alteametasoft.com/openmeetings/docs/ExternalVideo.html


On Thu, 23 May 2019 at 11:15, Sonia SWEngineer <sw...@gmail.com>
wrote:

> Thanks very much Maxim. Yes, I meant better compression so the screen data
> uses less bandwidth.
> Regarding replacement of the current encoder with ffmpeg:
> - Can this be achieved by streaming the screen with ffmpeg with options: -i
> :0.0+0,0...-c:v libx264......-f flv rtmps://...?
> - Or, by continue using the EncodeJob and SendJob logic but compressing the
> image(s) with ffmpeg in the "encode" method before pushing them as
> videoData?
> If this is the way, then will ffmpeg need to output a ByteArrayOutputStream
> that is compressed by libx264 in the encode method?
>
> Regards,
>
> Sonia
>
>
>
> On Wed, May 22, 2019 at 3:14 AM Maxim Solodovnik <so...@gmail.com>
> wrote:
>
> > Hello Sonia,
> >
> > hand-made ScreenV1 codec is being used for screen-share
> > the size of keyframe is roughly equals to width*height*4*scale (scale is
> > calculated based on selected image quality [1])
> > non key frame size depends on what was changed
> >
> > This hand-made encoder can be replaced with ffmpeg code modification will
> > be required
> >
> > Do you mean "better compression" by "reduce the length of the encoded
> > screen data"?
> > If so you can use x264 compression, most probably will work better
> >
> >
> > [1]
> >
> >
> https://github.com/apache/openmeetings/blob/master/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java#L784
> >
> > On Wed, 22 May 2019 at 10:26, Sonia SWEngineer <swengineeruser@gmail.com
> >
> > wrote:
> >
> > > Good day all,
> > > This message is to request your advice on the following questions
> > regarding
> > > Screen Recording:
> > >
> > > 1- What could be a rough estimate on how much bandwidth is needed for
> > > screen recording with RTMPS using the Java applet?
> > > The NetworkCalculator link below does not specify how much is needed
> for
> > > screen sharing/recording.
> > > https://openmeetings.apache.org/NetworkCalculator.html
> > >
> > > 2-Are there open source or commercial options to reduce the length of
> the
> > > encoded screen data for RTMPS at this time?
> > >
> > > Thanks in advance for any advice on this regard.
> > >
> >
> >
> > --
> > WBR
> > Maxim aka solomax
> >
>


-- 
WBR
Maxim aka solomax

Re: Questions on Screen Recording

Posted by Sonia SWEngineer <sw...@gmail.com>.
Thanks very much Maxim. Yes, I meant better compression so the screen data
uses less bandwidth.
Regarding replacement of the current encoder with ffmpeg:
- Can this be achieved by streaming the screen with ffmpeg with options: -i
:0.0+0,0...-c:v libx264......-f flv rtmps://...?
- Or, by continue using the EncodeJob and SendJob logic but compressing the
image(s) with ffmpeg in the "encode" method before pushing them as
videoData?
If this is the way, then will ffmpeg need to output a ByteArrayOutputStream
that is compressed by libx264 in the encode method?

Regards,

Sonia



On Wed, May 22, 2019 at 3:14 AM Maxim Solodovnik <so...@gmail.com>
wrote:

> Hello Sonia,
>
> hand-made ScreenV1 codec is being used for screen-share
> the size of keyframe is roughly equals to width*height*4*scale (scale is
> calculated based on selected image quality [1])
> non key frame size depends on what was changed
>
> This hand-made encoder can be replaced with ffmpeg code modification will
> be required
>
> Do you mean "better compression" by "reduce the length of the encoded
> screen data"?
> If so you can use x264 compression, most probably will work better
>
>
> [1]
>
> https://github.com/apache/openmeetings/blob/master/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java#L784
>
> On Wed, 22 May 2019 at 10:26, Sonia SWEngineer <sw...@gmail.com>
> wrote:
>
> > Good day all,
> > This message is to request your advice on the following questions
> regarding
> > Screen Recording:
> >
> > 1- What could be a rough estimate on how much bandwidth is needed for
> > screen recording with RTMPS using the Java applet?
> > The NetworkCalculator link below does not specify how much is needed for
> > screen sharing/recording.
> > https://openmeetings.apache.org/NetworkCalculator.html
> >
> > 2-Are there open source or commercial options to reduce the length of the
> > encoded screen data for RTMPS at this time?
> >
> > Thanks in advance for any advice on this regard.
> >
>
>
> --
> WBR
> Maxim aka solomax
>

Re: Questions on Screen Recording

Posted by Maxim Solodovnik <so...@gmail.com>.
Hello Sonia,

hand-made ScreenV1 codec is being used for screen-share
the size of keyframe is roughly equals to width*height*4*scale (scale is
calculated based on selected image quality [1])
non key frame size depends on what was changed

This hand-made encoder can be replaced with ffmpeg code modification will
be required

Do you mean "better compression" by "reduce the length of the encoded
screen data"?
If so you can use x264 compression, most probably will work better


[1]
https://github.com/apache/openmeetings/blob/master/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java#L784

On Wed, 22 May 2019 at 10:26, Sonia SWEngineer <sw...@gmail.com>
wrote:

> Good day all,
> This message is to request your advice on the following questions regarding
> Screen Recording:
>
> 1- What could be a rough estimate on how much bandwidth is needed for
> screen recording with RTMPS using the Java applet?
> The NetworkCalculator link below does not specify how much is needed for
> screen sharing/recording.
> https://openmeetings.apache.org/NetworkCalculator.html
>
> 2-Are there open source or commercial options to reduce the length of the
> encoded screen data for RTMPS at this time?
>
> Thanks in advance for any advice on this regard.
>


-- 
WBR
Maxim aka solomax