[BACK]Return to README.md CVS log [TXT][DIR] Up to [local] / projects / fauxstream

Annotation of projects/fauxstream/README.md, Revision 1.1

1.1     ! thfr        1: fauxstream
        !             2: ==========
        !             3:
        !             4: fauxstream (for **f**fmpeg + **au**cat **x**11 **stream**) is a shell script to
        !             5: simultaneously record a desktop video stream and one (or more?) audio streams.
        !             6: The main goal is to allow screencasting (with additional voice-over stream?),
        !             7: with defaults set to suit twitch.tv as the primary target. The license is ISC
        !             8: (see [LICENSE.txt](LICENSE.txt)).
        !             9:
        !            10: Rationale
        !            11: ---------
        !            12:
        !            13: To my knowledge, there is no dedicated screen casting solution available on
        !            14: OpenBSD. The port of ffmpeg can fulfill these functions, but seems to be
        !            15: hampered by apparent lack of or suboptimal multithreading support, resulting
        !            16: in dropped frames when recording.
        !            17:
        !            18: It turns out that the reason for this is apparently lack of (or too little)
        !            19: parallelism on th side of ffmpeg.
        !            20:
        !            21: This script circumvents this by running multiple parallel recording streams
        !            22: with both ffmpeg(1) and OpenBSD's aucat(1).
        !            23:
        !            24: Note that this is likely only useful on multiprocess systems/kernels.
        !            25:
        !            26: Requirements
        !            27: ------------
        !            28:
        !            29: * ffmpeg (install from ports with `doas pkg_add ffmpeg`)
        !            30: * aucat(1) (present on OpenBSD, FreeBSD)
        !            31: * enable kern.audio.record:
        !            32: # sysctl kern.audio.record=1
        !            33:
        !            34: Limitations
        !            35: -----------
        !            36:
        !            37: * Higher recording resolutions, non-default video codecs, or simultaneously
        !            38:   running applications may affect performance while recording to the point of
        !            39:   dropping frames and leading to desynchronization.
        !            40: * The recording with ffmpeg's x11grab doesn't register when an application goes
        !            41:   fullscreen, and it continues to record it as being run in a window.
        !            42: * Likely significantly worse performance on single-core CPUs/single-process
        !            43:   systems.
        !            44:
        !            45: Setting up the Monitoring Stream
        !            46: --------------------------------
        !            47:
        !            48: Refer to [FAQ 13](https://www.openbsd.org/faq/faq13.html#recordmon).
        !            49:
        !            50: Usage
        !            51: -----
        !            52:
        !            53: ```
        !            54: -r <recording video resolution>
        !            55: -a <additional audio stream>
        !            56: -c <video codec>
        !            57: -p <path>
        !            58: -v1 <volume adjustment of stream 1>
        !            59: -v2 <volume adjustment of stream 2>
        !            60: ```
        !            61:
        !            62: Example(s):
        !            63: -----------
        !            64:
        !            65: `sh fauxstream -r 1920x1080 -a snd/0.mon "rtmp://SERVER.twitch.tv/app/STREAM_KEY`
        !            66:
        !            67: **Note: To stop the recording, press Ctrl-C (not [q]!). Then the script will
        !            68: continue to combine (mux) the recorded streams.**
        !            69:
        !            70: Related Links:
        !            71: --------------
        !            72:
        !            73: * https://wiki.archlinux.org/index.php/Streaming_to_twitch.tv

Contact: <mail@mail.thfr.info>