Hybrid Replay Buffer#12505
Conversation
be6d60f to
48b0224
Compare
48b0224 to
9478073
Compare
|
The additional hotkey option was my proposal in lieu of a checkbox so I'm fine with this on the UX front. |
9478073 to
e3db9ea
Compare
e3db9ea to
6526a6b
Compare
|
Fixed up a rebase whoopsie that broke the build. Should be g2g now. |
6526a6b to
405e7de
Compare
|
Would it be much work to support multi track video for the replay buffer? |
Mh, does it not work? I suppose there might be some nuance with how purging the buffer works that could result in tracks not starting at the same time. |
|
The "mp4_replay_buffer" output does not have the multi track video flag set, so I would think it does not work, but I have not tried it yet. |
Ah I see, adding that part would be trivial for sure. I would be concerned about sync, since the DTS of keyframes can vary across tracks if b-frames are in use. I'd probably have to add a check to find the IDR on the primary track and then work forwards/backwards to find them for all the other tracks as well to determine a safe cutoff point. In revisiting the code I also noticed that it just hardcodes a single flag ( |
599153b to
c3b3d18
Compare
|
Updated with the following:
|
e92f6c9 to
ea7a9cb
Compare
|
Is it supposed to work in current state? With hybrid mov/mp4 both hotkeys to save replay produce 0kb files and no info in logs, i've tried some artifact builds a while ago, and now built from source |
ea7a9cb to
10eb314
Compare
It seems there was a typo that made its way in during one of the rebases or something. It should be fixed now. |
|
The file is being saved now, though there is no "replay buffer saved to" message in obs window and log. Sadly, no overshoot fixes here |
What do you mean by "overshoot"? |
Overlapping content from previous replay |
|
There's nothing to fix there, that is how the replay buffer is currently designed. We are open to the idea of improving the replay buffer, but it's a finnicky feature that needs care and hasn't been a priority. It's well outside scope of this PR, and not related. |
If you have a short keyframe interval and use the discard hotkey the overlap will be short. But it's somewhat unavoidable unless we implement a delay that waits until the next keyframe to do a clean cut (similar to how file splitting works). But if the encoder is configured with a very long keyframe interval it could take a long time for the replay to be able to save. |
10eb314 to
05316d9
Compare
Description
Implements replay buffer using the Hybrid MP4/MOV muxer instead of FFmpeg.
Motivation and Context
This implements a second hotkey as often requested (e.g. on Fider) that will dump the contents of the buffer after saving so two replay buffers saved back to back do not contain the same content1
How Has This Been Tested?
Tested locally with both hotkeys and HEVC.
Types of changes
Checklist:
Footnotes
Currently saving is allowed on non-keyframes, and discarding only happens up until the last keyframe. So there can be a few seconds of overlap still. ↩