Package Details: ffmpeg-obs 7.1.2-1

Git Clone URL: https://aur.archlinux.org/ffmpeg-obs.git (read-only, click to copy)
Package Base: ffmpeg-obs
Description: Complete solution to record, convert and stream audio and video with fixes for OBS Studio. And various options in the PKGBUILD
Upstream URL: https://ffmpeg.org/
Keywords: audio codec convert encoder ffmpeg media obs vaapi video
Licenses: GPL-3.0-only
Conflicts: ffmpeg
Provides: ffmpeg, libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavutil.so, libpostproc.so, libswresample.so, libswscale.so
Submitter: tytan652
Maintainer: tytan652
Last Packager: tytan652
Votes: 24
Popularity: 0.67
First Submitted: 2021-12-16 11:56 (UTC)
Last Updated: 2025-09-28 07:43 (UTC)

Required by (2070)

Sources (3)

Pinned Comments

tytan652 commented on 2022-07-23 05:48 (UTC) (edited on 2025-09-28 05:50 (UTC) by tytan652)

Please, this package follow Arch Linux ffmpeg package version (not the staging or the testing one).

Don't put ffmpeg-obs out-of-date if both packages are on the same version. If you do, you might be ignored in the future.

tytan652 commented on 2021-12-17 15:32 (UTC)

OBS Project actually patch FFmpeg to fix some issues and also add RIST support starting from 27.2.

So I created this package, a ffmpeg package that ensure that you have those.

I really wanted to not do this but some fixes are needed, so I did my best to add those "feature-set options".

They allow you to build ffmpeg with feature-set based on other ffmpeg packages from AUR.

Read the PKGBUILD for more information about them.

Latest Comments

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

infradragon commented on 2025-10-02 00:58 (UTC)

The build can fail with /bin/sh: 1: pod2man: not found if /usr/bin/core_perl/ is not in your path

HurricanePootis commented on 2025-09-28 06:33 (UTC)

Well, I'm sorry for my aggressiveness. I hope whatever is abiding your time irl goes well.

tytan652 commented on 2025-09-28 06:26 (UTC)

1 month out of date I would have understood the orphan request.

But 4 days for a secondary feature since the package still builds without it, there is many things that could (and has) push me to put this aside until I have time.

HurricanePootis commented on 2025-09-28 06:05 (UTC) (edited on 2025-09-28 06:06 (UTC) by HurricanePootis)

My bad foo, I won't do that again in the future. Sorry for not reading your pinned comment and my unnecessary escalation.

My orphan request was still valid considering that you are just as responsible for choosing not to respond to me, thus creating the "mia" conditions. The criteria was still met—regardless of my faux pas. However, I do hope that we can both look beyond this for the future, and regard this situation as "bridge under the water". I apologize for not reading your pinned comments.

tytan652 commented on 2025-09-28 05:50 (UTC) (edited on 2025-09-28 05:50 (UTC) by tytan652)

From my perspective, it was pure radio silence.

You chose radio silence by putting the package as out of date.

My pinned comment:

  • Don't put ffmpeg-obs out-of-date if both packages are on the same version. If you do, you might be ignored in the future.

HurricanePootis commented on 2025-09-28 05:27 (UTC) (edited on 2025-09-28 05:44 (UTC) by HurricanePootis)

I reached out to you and I did not get a response at all. From my perspective, it was pure radio silence. How was I supposed to know that you're active? If you read the orphan request blurb, "By submitting an orphan request, you ask a Package Maintainer to disown the package base. Please only do this if the package needs maintainer action, the maintainer is MIA and you already tried to contact the maintainer previously." Your package qualifies as it: 1) needs maintainer action; and, 2) I have tried to contact the maintainer previously.

Anyways, I made you a fix that works and is formatted to how you write your own PKGBUILDs. Sorry if you felt that I was "spamming" you.

And, I didn't put ffmpeg-obs because ffmpeg-obs was trailing behind upstream ffmpeg but keeping parity with arch linux's package. I put it out-of-date because I have years of experience of AUR maintainers not doing anything and ignoring notifications. The only reliable and consistent way I have had AUR managers notice something is with a flag-out-of-date. If you wanna complain about that, go complain to the people who make this site.

tytan652 commented on 2025-09-28 04:11 (UTC)

I can't believe I have to spell it out, but spamming me (comment + unjustified out of date flag + unsolicited email + orphan request) is going to lead to nowhere.

  1. I'm pretty sure I'm not full-time employed to maintain AUR packages, so yes full will break and I will not go "race against time" every time it does.

  2. Pin comments are not decorations, I written that there is a consequence for unjustified out of date flag.

HurricanePootis commented on 2025-09-24 14:20 (UTC)

@tytan652

I have the following patches to make FFMPEG_OBS_FULL=ON work.

  1. The decklink-sdk package has a newer version of decklink sdk than what ffmpeg supports. And, it has not been patched upstream. Therefore, download OBS and use its copy of decklink sdk, just like how ffmpeg-decklink does.
  2. Add a 070-ffmpeg-lcevdec4.0.0-fix.patch from upstream ffmpeg for fixing lcevdec compiling support
diff --git a/070-ffmpeg-lcevcdec4.0.0-fix.patch b/070-ffmpeg-lcevcdec4.0.0-fix.patch
new file mode 100644
index 0000000..ff266b1
--- /dev/null
+++ b/070-ffmpeg-lcevcdec4.0.0-fix.patch
@@ -0,0 +1,40 @@
+--- a/libavcodec/lcevcdec.c
++++ b/libavcodec/lcevcdec.c
+@@ -139,7 +139,7 @@ static int lcevc_send_frame(void *logctx
+     if (!sd)
+         return 1;
+ 
+-    res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, in->pts, 0, sd->data, sd->size);
++    res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, (uint64_t) in->pts, sd->data, sd->size);
+     if (res != LCEVC_Success)
+         return AVERROR_EXTERNAL;
+ 
+@@ -147,7 +147,7 @@ static int lcevc_send_frame(void *logctx
+     if (ret < 0)
+         return ret;
+ 
+-    res = LCEVC_SendDecoderBase(lcevc->decoder, in->pts, 0, picture, -1, NULL);
++    res = LCEVC_SendDecoderBase(lcevc->decoder, (uint64_t) in->pts, picture, -1, NULL);
+     if (res != LCEVC_Success)
+         return AVERROR_EXTERNAL;
+ 
+--- a/libavfilter/vf_lcevc.c
++++ b/libavfilter/vf_lcevc.c
+@@ -139,7 +139,7 @@ static int send_frame(AVFilterLink *inlink, AVFrame *in)
+         return ret;
+ 
+     if (sd) {
+-        res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, in->pts, 0, sd->data, sd->size);
++        res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, (uint64_t) in->pts, sd->data, sd->size);
+         if (res == LCEVC_Again)
+             return AVERROR(EAGAIN);
+         else if (res != LCEVC_Success) {
+@@ -148,7 +148,7 @@ static int send_frame(AVFilterLink *inlink, AVFrame *in)
+         }
+     }
+ 
+-    res = LCEVC_SendDecoderBase(lcevc->decoder, in->pts, 0, picture, -1, in);
++    res = LCEVC_SendDecoderBase(lcevc->decoder, (uint64_t) in->pts, picture, -1, in);
+     if (res != LCEVC_Success) {
+         av_log(ctx, AV_LOG_ERROR, "LCEVC_SendDecoderBase failed\n");
+         LCEVC_FreePicture(lcevc->decoder, picture);
diff --git a/PKGBUILD b/PKGBUILD
index 820b004..7855cf9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -69,6 +69,7 @@ _libristver=0.2.7
 _libtheoraver=1.2
 _libvpxver=1.15
 _libxml2ver=2.14
+_obs_studio_ver=32.0.0
 _rav1ever=0.7.1
 _rubberbandver=4
 _srtver=1.5
@@ -335,9 +336,10 @@ fi

 if [[ $FFMPEG_OBS_DECKLINK == 'ON' ]]; then
   _nonfree_enabled=ON
-  makedepends+=('decklink-sdk')
   _args+=(--enable-decklink)
   provides+=(ffmpeg-decklink)
+  source+=(https://github.com/obsproject/obs-studio/archive/${_obs_studio_ver}/obs-studio-${_obs_studio_ver}.tar.gz)
+  sha256sums+=(6c73099d53aee7b57faa624431891901d9c84b2d93e284d27799fdc33868d113)
 fi

 if [[ $FFMPEG_OBS_LIBFDK_AAC == 'ON' ]]; then
@@ -405,6 +407,8 @@ if [[ $FFMPEG_OBS_FULL == 'ON' ]]; then
     --enable-liblc3 --enable-liblcevc-dec --enable-libvvenc
   )
   provides+=(ffmpeg-full)
+  source+=(070-ffmpeg-lcevcdec4.0.0-fix.patch)
+  sha256sums+=(2ff4ba31e43d6d397542ec25df224cef01cf501409e202255e9414e482ba14cf)
 else
   _args+=(--disable-sndio) # sndio is not present when upstream package is built
 fi
@@ -464,6 +468,10 @@ prepare() {
     patch -Np1 -i <(filterdiff -i b/libavcodec/libsvt_vp9.c "${srcdir}/040-ffmpeg-add-svt-vp9-g${_svt_vp9_ver:0:7}.patch")
   fi

+  if [[ $FFMPEG_OBS_FULL == 'ON' ]]; then
+    patch -Np1 -i "${srcdir}/070-ffmpeg-lcevcdec4.0.0-fix.patch"
+  fi
+
   if [[ $FFMPEG_OBS_CUDA == ON'' ]]; then
     sed -i 's/nvccflags -std=c++11/nvccflags -std=c++14/g' configure
   fi
@@ -483,6 +491,10 @@ build() {
     export CFLAGS+=' -Wno-error=incompatible-pointer-types'
   fi

+  if [[ $FFMPEG_OBS_DECKLINK == 'ON' ]]; then
+    export CFLAGS+=" -isystem${srcdir}/obs-studio-${_obs_studio_ver}/plugins/decklink/linux/decklink-sdk"
+  fi
+
   ./configure "${_args[@]}"

   make

kuon commented on 2025-09-09 15:59 (UTC)

As a note, if you want debug symbols, you have to set FFMPEG_OBS_DEBUG

AND

add this to the PKGBUILD

options=('!strip')

HurricanePootis commented on 2025-08-17 05:13 (UTC)

@tytan652 ffmpeg is moving their upstream git repo to forgejo hosted at https://code.ffmpeg.org/ffmpeg/ffmpeg. You can read about the announcement here, they want people to start using it "effective [immediately]".