#obs #libobs #screen-recording #recording #encoding

libobs-sources

为OBS创建源的帮助包

1个不稳定版本

0.1.0 2024年8月5日

#248视频

Download history 100/week @ 2024-08-02 9/week @ 2024-08-09

109 每月下载量

GPL-3.0 许可证

505KB
2K SLoC

libOBS Sources

此crate使用libobs crate轻松创建OBS Studio的新源。

示例

// Set up the obs context and output here (see libobs-new crate for more info)

let (mut context, output) = initialize_obs(rec_file);
let output = context.get_output(&output).unwrap();

let windows =
    WindowCaptureSourceBuilder::get_windows(WindowSearchMode::ExcludeMinimized).unwrap();
let window = windows.into_iter().find(|w| {
    w.class
        .as_ref()
        .is_some_and(|e| e.to_lowercase().contains("notepad"))
})
.unwrap();

WindowCaptureSourceBuilder::new("test_capture")
    .set_window(&window)
    .add_to_output(output, 0)
    .unwrap();
// And the window capture source is added and captures the notepad window!

lib.rs:

一个用于创建OBS源的库,无需了解源使用哪些属性。示例用法(仅在Windows上捕获窗口)

use libobs_window_helper::WindowSearchMode;
use libobs_wrapper::{context::ObsContext, sources::ObsSourceBuilder, utils::{OutputInfo, StartupInfo}};
use libobs_sources::windows::WindowCaptureSourceBuilder;


let output = context.output(output_info).unwrap();

// Do other initialization for video encoders, audio encoders, etc.

let windows = WindowCaptureSourceBuilder::get_windows(WindowSearchMode::IncludeMinimized).unwrap();
let example_window = windows.get(0).unwrap();

WindowCaptureSourceBuilder::new("Test Window Capture")
.set_window(example_window)
// Obs Output is created from `ObsContext`
.add_to_output(output, 0)
.unwrap();

依赖关系

~2–33MB
~498K SLoC