• v0.6.0 339eff3c04

    v0.6.0 Stable

    builduser released this 2026-09-06 17:36:56 +02:00 | 15 commits to main since this release

    Fixes virtual camera output, which did not work even with v4l2loopback
    installed correctly, and adds a command to check the path end to end.

    Why it did not work

    Two faults, both on the restart path, both invisible until a decoder had
    failed once.

    A restart could never recover. Each ffmpeg session took whatever packet
    came next from the channel it already held. That is almost never a sequence
    header, so ffmpeg received a stream with no codec configuration, could not
    decode it, exited, and was restarted into the same position. Decoders now take
    a subscriber rather than a channel and open a fresh subscription for each
    process, so every one begins with the configuration and a keyframe.

    Restarts stole each other's packets. The camera output adapted its channel
    through a goroutine with no way to stop. Each restart started another, and the
    two then split the stream between them, so even a session that did start
    correctly was fed every second packet. It now stops with its session.

    Checking it

    ./streamsink -check
    

    Works through everything a virtual camera needs, in dependency order, stopping
    at the first thing that makes the rest moot: platform, ffmpeg and its v4l2
    support, the module, exclusive_caps, the devices, whether one can be opened
    for writing, and finally a round trip that writes a test pattern to the device
    and reads a frame back. That last step is the only one proving the path rather
    than a part of it. Every failure carries the command to fix it.

    Close OBS before running it: the round trip needs to read the device back, and
    will fail if something else holds it open. Use -check-device /dev/video1 to
    exercise a particular device.

    Downloads

    File For
    streamsink-0.6.0-linux-amd64.tar.gz Linux server and agent
    streamsink-0.6.0-windows-agent-amd64.zip Windows agent, for each OBS machine
    streamsink-0.6.0-windows-server-amd64.zip Windows server, with the GTK4 runtime
    streamsink-0.6.0-windows-decoder-amd64.zip Windows decoder, only for the program view

    Still unverified

    Virtual camera output has still not been exercised end to end here, because
    v4l2loopback is not installed on the build machine. -check exists to test
    exactly that on a machine which does have it. The Windows binaries have not
    been executed either; they are verified by construction and import analysis.

    Downloads