Package Details: obs-studio-git 30.0.2.r141.ge958964-1

Git Clone URL: https://aur.archlinux.org/obs-studio-git.git (read-only, click to copy)
Package Base: obs-studio-git
Description: Free and open source software for video recording and live streaming.
Upstream URL: https://github.com/obsproject/obs-studio
Keywords: obs-studio
Licenses: GPL2
Conflicts: obs-studio
Provides: obs-studio
Submitter: ledti
Maintainer: benklett
Last Packager: benklett
Votes: 94
Popularity: 1.23
First Submitted: 2014-03-12 22:29 (UTC)
Last Updated: 2023-12-10 21:27 (UTC)

Required by (142)

Sources (4)

Pinned Comments

thotypous commented on 2021-02-05 14:12 (UTC)

If you don't want to build this package yourself, hourly builds are available at https://aur.chaotic.cx

benklett commented on 2016-02-06 23:11 (UTC) (edited on 2016-08-10 14:01 (UTC) by benklett)

This is a -git package, that means you have to update it! Please do not flag it out of date because of the version number. The version number will automatically increase to the version of the latest commit. If you want to have the stable versions, please install the package obs-studio from [community].

Latest Comments

1 2 3 4 5 6 .. 30 Next › Last »

no-prophet commented on 2024-03-17 04:27 (UTC)

@dingodoppelt It worked. Thank you for the advice, and thanks to @Davidyz for the fix.

dingodoppelt commented on 2024-03-17 00:32 (UTC)

@no-prophet see @Davidyz's answer. Until the maintainer updates this package this'll be the only way to compile it. Sadly the maintainer seems to have been inactive for some months now.

no-prophet commented on 2024-03-16 06:59 (UTC)

Fails to build (libajantv2 is installed)

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find LibAJANTV2 (missing: AJA_LIBRARIES_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindLibAJANTV2.cmake:98 (find_package_handle_standard_args) plugins/aja/cmake/legacy.cmake:17 (find_package) cmake/Modules/ObsHelpers.cmake:473 (include) plugins/aja/CMakeLists.txt:3 (legacy_check)

-- Configuring incomplete, errors occurred! ==> ERROR: A failure occurred in build(). Aborting... -> error making: obs-studio-git-exit status 4

Davidyz commented on 2024-03-11 20:20 (UTC)

At the moment the official build instruction included the cmake option -DENABLE_AJA=0. The building failed for me until I added this option to the cmake command in the build function of this PKGBUILD. I don't know enough about obs (or cpp in general) but if your build fails please consider this. Here's my complete build function:

build() {
    cmake -B build -S $pkgname \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_INSTALL_LIBDIR=lib \
        -DBUILD_BROWSER=ON \
        -DCEF_ROOT_DIR="/opt/cef-obs" \
        -DENABLE_LIBFDK=ON \
        -DENABLE_AJA=0 \
        -Wno-dev

    cmake --build build
}

seo.disparate commented on 2024-01-28 01:40 (UTC) (edited on 2024-01-28 01:44 (UTC) by seo.disparate)

@zangoku

1 Take the patch text and save it into a file "obs_libdatachannel_fix.patch" and place it in the same directory as the PKGBUILD.

2 Add the patch filename to the "source" array in the PKGBUILD:

source=("$pkgname::git+https://github.com/obsproject/obs-studio.git#branch=master"
        "git+https://github.com/Mixer/ftl-sdk.git"
        "git+https://github.com/obsproject/obs-browser.git"
        "git+https://github.com/obsproject/obs-websocket.git"
        "obs_libdatachannel_fix.patch"
)

3 Add the md5sum of the patch to the "md5sums" array in the PKGBUILD (use the output of md5sum obs_libdatachannel_fix.patch:

md5sums=("SKIP" "SKIP" "SKIP" "SKIP" "024f5214faf840efa736bbd42386b540")

4 Add the patch command in "prepare" function to apply the patch in the PKGBUILD:

prepare() {
  cd $pkgname
  gitconf="protocol.file.allow=always"

  git config submodule.plugins/obs-outputs/ftl-sdk.url $srcdir/ftl-sdk
  git config submodule.plugins/obs-browser.url $srcdir/obs-browser
  git config submodule.plugins/obs-websocket.url $srcdir/obs-websocket
  git -c $gitconf submodule update

  patch -p1 < "$srcdir/obs_libdatachannel_fix.patch"
}

5 Build the package. It should apply the patch during the prepare step as specified.

EDIT: Oh they updated. Well I'm leaving this comment anyway for those who want to have an example of patching the source.

xiota commented on 2024-01-28 01:38 (UTC) (edited on 2024-01-28 01:38 (UTC) by xiota)

@zangoku You don't. Wait for upstream to update. (They already did.)

zangoku commented on 2024-01-27 20:42 (UTC)

@seo.disparate how do I apply your patch?

seo.disparate commented on 2024-01-21 09:09 (UTC) (edited on 2024-01-21 12:25 (UTC) by seo.disparate)

Fails to build due to updated libdatachannel. I made a patch that seems to fix the compiler errors:

--- a/plugins/obs-webrtc/whip-output.cpp
+++ b/plugins/obs-webrtc/whip-output.cpp
@@ -112,16 +112,14 @@ void WHIPOutput::ConfigureAudioTrack(std::string media_stream_id,

    auto rtp_config = std::make_shared<rtc::RtpPacketizationConfig>(
        ssrc, cname, audio_payload_type,
-       rtc::OpusRtpPacketizer::defaultClockRate);
-   auto packetizer = std::make_shared<rtc::OpusRtpPacketizer>(rtp_config);
+       rtc::OpusRtpPacketizer::DefaultClockRate);
+   auto opus_packetizer = std::make_shared<rtc::OpusRtpPacketizer>(rtp_config);
    audio_sr_reporter = std::make_shared<rtc::RtcpSrReporter>(rtp_config);
    auto nack_responder = std::make_shared<rtc::RtcpNackResponder>();

-   auto opus_handler =
-       std::make_shared<rtc::OpusPacketizationHandler>(packetizer);
-   opus_handler->addToChain(audio_sr_reporter);
-   opus_handler->addToChain(nack_responder);
-   audio_track->setMediaHandler(opus_handler);
+   opus_packetizer->addToChain(audio_sr_reporter);
+   opus_packetizer->addToChain(nack_responder);
+   audio_track->setMediaHandler(opus_packetizer);
 }

 void WHIPOutput::ConfigureVideoTrack(std::string media_stream_id,
@@ -142,17 +140,15 @@ void WHIPOutput::ConfigureVideoTrack(std::string media_stream_id,
    auto rtp_config = std::make_shared<rtc::RtpPacketizationConfig>(
        ssrc, cname, video_payload_type,
        rtc::H264RtpPacketizer::defaultClockRate);
-   auto packetizer = std::make_shared<rtc::H264RtpPacketizer>(
+   auto h264_packetizer = std::make_shared<rtc::H264RtpPacketizer>(
        rtc::H264RtpPacketizer::Separator::StartSequence, rtp_config,
        MAX_VIDEO_FRAGMENT_SIZE);
    video_sr_reporter = std::make_shared<rtc::RtcpSrReporter>(rtp_config);
    auto nack_responder = std::make_shared<rtc::RtcpNackResponder>();

-   auto h264_handler =
-       std::make_shared<rtc::H264PacketizationHandler>(packetizer);
-   h264_handler->addToChain(video_sr_reporter);
-   h264_handler->addToChain(nack_responder);
-   video_track->setMediaHandler(h264_handler);
+   h264_packetizer->addToChain(video_sr_reporter);
+   h264_packetizer->addToChain(nack_responder);
+   video_track->setMediaHandler(h264_packetizer);
 }

 /**

A quick test recording seems to indicate this works. Feel free to test it yourself.
Wait no, I didn't test webrtc, which this code belongs to...

EDIT: I tested a WHIP livestream session to myself using https://ossrs.io/lts/en-us/blog/Experience-Ultra-Low-Latency-Live-Streaming-with-OBS-WHIP . It appears to work with h264 video and opus audio, so I think this patch works properly.