Testing SCR as video source for streaming

32 views
Skip to first unread message

Aristides

unread,
Aug 30, 2012, 7:52:47 PM8/30/12
to roger-p...@googlegroups.com
Hi Roger
While trying different video sources meant for streaming video, I've been using screen capturer recorder with mixed results.
I'm now using FFSplit which is a pretty lightweight frontend for streaming/recording via ffmpeg.
I've managed to record videos once at a decent frame rate of ~30fps but also other times at a lower number of ~20fps. And without doing changes in settings, in my system or in the running applications.
When using another video source (DXTory via DirectShow capture), I can pull off ~40fps but DXTory is proprietary software meant for professional use anyway.
So I wanted to ask you if this (random?) performance drop could be inherent to SCR. If there's any tests to find out more about it I'd be glad to help.
Could it be ffmpeg acting up for some reason?

These are my SCR settings: http://pastebin.com/0h6c4bHB

Roger Pack

unread,
Aug 31, 2012, 8:54:00 AM8/31/12
to roger-p...@googlegroups.com
How does ffsplit's own input device do? It appears aero is disabled
so that isn't it...

> While trying different video sources meant for streaming video, I've been
> using screen capturer recorder with mixed results.
> I'm now using FFSplit which is a pretty lightweight frontend for
> streaming/recording via ffmpeg.
> I've managed to record videos once at a decent frame rate of ~30fps but also
> other times at a lower number of ~20fps. And without doing changes in
> settings, in my system or in the running applications.

How do you measure fps? Do you have extra "idle" cpu?

> When using another video source (DXTory via DirectShow capture), I can pull
> off ~40fps but DXTory is proprietary software meant for professional use
> anyway.
> So I wanted to ask you if this (random?) performance drop could be inherent
> to SCR. If there's any tests to find out more about it I'd be glad to help.
> Could it be ffmpeg acting up for some reason?
>
> These are my SCR settings: http://pastebin.com/0h6c4bHB

If you save it straight to a file does it work with high fps?

Does fps go down then up, in the same run?

After answering these, my next thought would be to try and debug using
ffmpeg from the command line...

Anyway to answer your real question, no I haven't gotten many reports
at all, and yours is the first that mentions arbitrary dips, so it
would be interesting to test it out.
Thanks for your help.
-r

Aristides

unread,
Aug 31, 2012, 12:30:55 PM8/31/12
to roger-p...@googlegroups.com
El viernes, 31 de agosto de 2012 09:54:21 UTC-3, rogerdpack escribió:
How does ffsplit's own input device do?  It appears aero is disabled 
so that isn't it...

Aero is enabled when recording. 

 

> While trying different video sources meant for streaming video, I've been
> using screen capturer recorder with mixed results.
> I'm now using FFSplit which is a pretty lightweight frontend for
> streaming/recording via ffmpeg.
> I've managed to record videos once at a decent frame rate of ~30fps but also
> other times at a lower number of ~20fps. And without doing changes in
> settings, in my system or in the running applications.

How do you measure fps?  Do you have extra "idle" cpu?
No, FFsplit shows a debug console which is actually the output from ffmpeg. Such as this: http://pastebin.com/9S75Ht6F
That is the example of a recording using DXTory as video source that stabilises at ~30fps with moving image. Follow the changes in fps thru time.
 


> When using another video source (DXTory via DirectShow capture), I can pull
> off ~40fps but DXTory is proprietary software meant for professional use
> anyway.
> So I wanted to ask you if this (random?) performance drop could be inherent
> to SCR. If there's any tests to find out more about it I'd be glad to help.
> Could it be ffmpeg acting up for some reason?
>
> These are my SCR settings: http://pastebin.com/0h6c4bHB

If you save it straight to a file does it work with high fps?
My tests are saving straight to a file, via ffsplit. (They're the same when streaming, except my upload bandwitdh can actually put a cap to quality by itself.) Is this what you're asking?
 

Does fps go down then up, in the same run?
Yes, when there's image movement fps goes down. When the image is still, fps goes up. ffmpeg dinamically adjusts its encoding framerate (I think that's an h264 feature). By the way, there's always spare CPU time for ffmpeg to use so it's not that it can't encode any faster.

After answering these, my next thought would be to try and debug using
ffmpeg from the command line... 
I've done that, and it's the same result. I should note that the recording app bundled with SCR actually records mov files at an actual rate of 45fps, but the video is lagged as if the input had been at 10FPS or less. Again without capping my CPU.
 
-r

Roger Pack

unread,
Aug 31, 2012, 5:11:38 PM8/31/12
to roger-p...@googlegroups.com
> Aero is enabled when recording.

Oh you're right it is. Sometimes with aero...it forces my fps down to like 15.
Try running the "benchmarker" with and without moving windows around
at the same time.

for me, when I'm moving things around, I get (windows 7, with aero):
max: 17.2 fps [20.1 MB/sec]

Though in reality...if you are using ffsplit it should be disabling
aero for you (I would guess?) while it's running so maybe that's not
the problem...

>> > I've managed to record videos once at a decent frame rate of ~30fps but
>> > also
>> > other times at a lower number of ~20fps. And without doing changes in
>> > settings, in my system or in the running applications.

But the display is changing I presume?

What about speeds when using ffsplit's provided capture dshow device?
Does it keep 30 fps?

> That is the example of a recording using DXTory as video source that
> stabilises at ~30fps with moving image. Follow the changes in fps thru time.

Is DXTory capturing the desktop in this instance?

>> > When using another video source (DXTory via DirectShow capture), I can
>> > pull
>> > off ~40fps but DXTory is proprietary software meant for professional use
>> > anyway.

If you tell me what version of directX it uses I might be able to
implement it :)

>> If you save it straight to a file does it work with high fps?
>
> My tests are saving straight to a file, via ffsplit. (They're the same when
> streaming, except my upload bandwitdh can actually put a cap to quality by
> itself.) Is this what you're asking?

Yeah you answered it.

> Yes, when there's image movement fps goes down. When the image is still, fps
> goes up. ffmpeg dinamically adjusts its encoding framerate (I think that's
> an h264 feature).

Yeah kind of...it's just dshow dropping incoming packets when the
buffer gets full (today--this could be improved upon if there's
sufficient demand...)

> By the way, there's always spare CPU time for ffmpeg to
> use so it's not that it can't encode any faster.
>
>> After answering these, my next thought would be to try and debug using
>>
>> ffmpeg from the command line...
>
> I've done that, and it's the same result. I should note that the recording
> app bundled with SCR actually records mov files at an actual rate of 45fps,
> but the video is lagged as if the input had been at 10FPS or less. Again
> without capping my CPU.

Fascinating. Could I get your full command line output?
Is disk capped?
When you run it from the command line do you get
"real-time buffer 164% full! frame dropped!"
type messages, when capturing with either virtual-screen-capturer or
the FFSplit device?

I also wonder if the ffsplit device is using "normal" BitBlt or
injecting like with DXtory. My bet is it's just using Bitblt, so
should behave the same.

Anyway you were totally right about mov not working. I guess it (at
least ffmpeg's implementation) relies on stable incoming packets, so
I'm going to have to find something else and then release a new
version :)

Thanks!
-r
Reply all
Reply to author
Forward
0 new messages