说明
ffmpeg 分层录制一直都有瓶颈,更好的硬件带来的录制速度提升很有限,所以有的时候用obs录屏效率会高很多,现在官方放出了测试版本,替换原安装目录下的 AfxHookSource.dll
后进入游戏便可测试录制相关情况,欢迎积极参与测试反馈意见
测试版DLL下载: https://cowtransfer.com/s/71aff08cb95e43
branch: https://github.com/advancedfx/advancedfx/tree/faster-recording-295
commit: https://github.com/advancedfx/advancedfx/commit/d15e263c8130652e030e92e6738f5377eb518bab
current compile: AfxHookSource_20220106T1317Z.zip
improvements already implemented:
- remove format conversions not required for FFMPEG
- prevent bottle-necking on the drawing thread, while we could at least use multiple threads for required post-processing
- output multiple files ("lanes") at once from multiple threads
- also increase FFMPEG pipe buffer to 1 MB per stream
planned improvements (not implemented yet!):
- Solve HLAE wasting a frame when recording even when it shouldn't
- Mutli threaded sampling system support
breaking changes:
- if you used vflip video filter in custom FFMPEG settings, you probably need to remove it!
Testing
If you only have time / motivation to test a subset of the tests, that's ok too.
Please report bugs that you find (even in combinations not coverred by these tests)!
- Each test should be done with and without MSAA and otherwise same settings.
- Each test should be done with stable public version and the current compile above
A: Single stream performance
- Add a only normal stream:
mirv_streams add normal norm
mirv_streams settings edit afxDefault settings afxFfmpeg
(if you want to use an otherpresets that's ok, but please report you did so)
- Record start + record end to make the FFMPEG binaries hot
- measure start + recordstart, record end + measure end
- report number of frames recorded recorded (output FPS * output time recorded)
B: Multi stream performance
exec afx/updateWorkaround
to add a default set of streams
mirv_streams settings edit afxDefault settings afxFfmpeg
(if you want to use an otherpresets that's ok, but please report you did so)
- Record start + record end to make the FFMPEG binaries hot
- measure start + recordstart, record end + measure end
- report number of frames recorded recorded (output FPS *output time recorded)