December 11, 2014 at 8:01 am #58876
I’m trying to use CamTwist + Syphon Recorder to record lossless RGB video. I get full FPS in my source and CamTwist, but not Syphon Recorder.
When the FPS is set to 60, it’ll produce a video around 56-57 FPS. If I choose “as fast as possible” it’ll go up to around 59.92, and there will still be noticeable frame skips.December 11, 2014 at 10:57 am #58878
Recorder, by design, won’t produce fixed-rate movies. In particular, if there has been no change since the last frame, a duplicate frame won’t be added.
I’m not sure what you intend to illustrate with the clip you provide, but if it’s simply that the frame-rate doesn’t read 60, then that’s (probably) working as intended. If you can produce a movie which suffers visually as a result, then you have a problem.
If you see intermittent frame loss recording lossless RGB, you should check the destination drive can keep up. The free Blackmagic Disk Speed Test on the App store is handy for that.December 11, 2014 at 11:31 am #58879
The short clip was just to show the FPS in the inspector without uploading a huge raw file. When I do more practical tests with fast, constant motion I can easily see frame skips, even with really low resolutions.
My disk is a SATA 3 SSD that I just got recently. I tried the test you mentioned: https://www.dropbox.com/s/ax01tz98mb2v7aa/Disk%20Speed.png?dl=0
If I capture with Quartz Composer instead of CamTwist I get the same result: smooth video in the QC preview window, and frame skips in Syphon Recorder.December 11, 2014 at 1:10 pm #58880
If you can provide the least complicated workflow that reliably produces dropped frames for you, and a screenshot of your Preferences window in Recorder, I’ll take a look at some point (not soon, sorry).December 11, 2014 at 2:30 pm #58881
For good measure I outlined both workflows I’ve tried:
The general idea is the same: capture at the source’s native res and frame rate (426×240 at 60 FPS in this particular case) and record with those same settings.December 12, 2014 at 8:59 pm #58884
Linking this here just in case it’ll help: https://www.dropbox.com/s/dmiafv2d63nn74e/Playing%20FPS.mp4?dl=0
You’ll notice it consistently dips at set intervals. It’s visually reflected in the original video as well.
December 13, 2014 at 8:57 am #58886
- This reply was modified 6 years, 2 months ago by HDL.
A reproducible workflow would be a set of instructions I can follow, ideally without installing additional software.December 13, 2014 at 9:52 am #58888
First run a video or game that smoothly runs at 60 FPS, preferably at low resolution to maximize performance. Use Command + Shift + 4 to bring up a crosshair that shows you the X/Y coordinates of your monitor and note the window’s origin values.
• Open basic composition in Quartz Composer.
• From the library window, drag v002 Screen Capture, Billboard, and Syphon Server blocks to the editor.
• Connect v002 Screen Capture output to Image inputs of Billboard and Syphon.
• Open Syphon inspector and change source from Image to OpenGL Scene.
• Open v002 Screen Capture inspector and change height, width, and X/Y origins to desired size and location.
• Open Billboard inspector and change Dimensions Mode (under Settings) to Real Size. Under Input Parameters adjust Y position as needed.
• Choose a resolution preset in the viewer or set it to custom and resize the window to match the desired dimensions.
Syphon Recorder Settings
• Compressor: Any will do, but for this test use None (Uncompressed).
• Preserve Alpha Channel on or off.
• Quality: Lossless
• Frame Rate: 60
• Dimensions: Set to the same resolution as the QC viewer.
• Audio Input: Soundflower (2ch)
• Audio Format: Linear PCMDecember 14, 2014 at 9:59 am #58889
Try running OpenEmu. OpenEmu has Syphon support built in.
There are a lot of issues here.
1: video games don’t run at 60hz like your monitor does, but typically 29.97.
2: Game emulators don’t always do the right things to compensate for the frame rate discrepancy, so it can be hit or miss in terms of frame rate just on its own (I know, seems weird but its the case sometimes still just due to phasing)
3: Everything Tom said about Syphon Recorder being meant for realtime, on demand, just in time frame arrival means it has a VERY hard time meeting the FPS you desire, even if the host app runs at a smooth 60Hz, frames don’t arrive at *exactly* the same time, there is, for lack of a better word, ‘clock drift’.
Try OpenEmu. I believe it has native recording, and if that doesnt suffice, try its native Syphon support, see if that helps.
Thanks for taking the time to write that up.December 14, 2014 at 11:06 am #58890
My particular test game is a native PC game (not emulated) from this year that runs at exactly 60 FPS. It is very light on CPU/GPU.
What you say about frame arrival seems a lot closer to the mark, but the skipping happens at set intervals (around every 5, 6 seconds) and lasts about 2-3 seconds. See my video a couple posts back.
Just to be certain, I ran a Genesis game with OpenEmu and tried recording tests with 59.94 FPS (native Genesis rate) and 60. Both exhibited the aforementioned behavior.December 14, 2014 at 5:43 pm #58891
Hm. Out of curiosity, do you get the same stutter if you use a more lightweight codec like Apple Intermediate Codec or Photo Jpeg?December 14, 2014 at 7:34 pm #58892
Oh, also, using the QC Editor to power your syphon capture is super sub-optimal. QC Editor renders using the main queue and therefor you cannot guarantee consistent FPS at all.December 14, 2014 at 10:08 pm #58893
Yes, using the other compression options give the same result, as well as using CamTwist rather than QC.
- You must be logged in to reply to this topic.