diff --git a/multimedia/Makefile b/multimedia/Makefile index d59990b0b536..cb47f7e97838 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -1,422 +1,423 @@ COMMENT = Multimedia software SUBDIR += Bento4 SUBDIR += ab-av1 SUBDIR += ab25 SUBDIR += alass SUBDIR += aom SUBDIR += aravis SUBDIR += arcan SUBDIR += aribb24 SUBDIR += asdcplib SUBDIR += assimp SUBDIR += atomicparsley SUBDIR += audacious SUBDIR += audacious-plugins SUBDIR += av1an SUBDIR += avidemux SUBDIR += avidemux-cli SUBDIR += avidemux-plugins SUBDIR += avidemux-qt5 SUBDIR += baka-mplayer SUBDIR += bcmatroska2 SUBDIR += bino SUBDIR += bitstream SUBDIR += blind SUBDIR += btavctpd SUBDIR += butt SUBDIR += ccextractor SUBDIR += celluloid SUBDIR += cheese SUBDIR += chilitags SUBDIR += cineencoder SUBDIR += clapper SUBDIR += clutter-gst SUBDIR += clutter-gst3 SUBDIR += cmrt SUBDIR += cmrtlib SUBDIR += cx88 SUBDIR += dav1d SUBDIR += deforaos-camera SUBDIR += deforaos-player SUBDIR += dovi_tool SUBDIR += dragon SUBDIR += droidcam SUBDIR += dtv-scan-tables SUBDIR += dv2sub SUBDIR += dvb-apps SUBDIR += dvbsnoop SUBDIR += dvd-slideshow SUBDIR += dvdauthor SUBDIR += dvdid SUBDIR += dvdread SUBDIR += elementary-videos SUBDIR += emby-server SUBDIR += ffaudioconverter SUBDIR += ffdec SUBDIR += ffmpeg SUBDIR += ffmpeg3 SUBDIR += ffmpeg4 SUBDIR += ffmpeg6 SUBDIR += ffmpegthumbnailer SUBDIR += ffms2 SUBDIR += ffnvcodec-headers SUBDIR += filebot SUBDIR += flvmeta SUBDIR += fswebcam SUBDIR += funnelcake SUBDIR += gaupol SUBDIR += gavl SUBDIR += get_iplayer SUBDIR += gmmlib SUBDIR += gmp-api SUBDIR += go2tv SUBDIR += gpac SUBDIR += gpodder SUBDIR += gst123 SUBDIR += gstreamer1 SUBDIR += gstreamer1-editing-services SUBDIR += gstreamer1-libav SUBDIR += gstreamer1-plugins SUBDIR += gstreamer1-plugins-all SUBDIR += gstreamer1-plugins-aom SUBDIR += gstreamer1-plugins-assrender SUBDIR += gstreamer1-plugins-bad SUBDIR += gstreamer1-plugins-core SUBDIR += gstreamer1-plugins-dash SUBDIR += gstreamer1-plugins-dts SUBDIR += gstreamer1-plugins-dv SUBDIR += gstreamer1-plugins-dvdread SUBDIR += gstreamer1-plugins-good SUBDIR += gstreamer1-plugins-hls SUBDIR += gstreamer1-plugins-libde265 SUBDIR += gstreamer1-plugins-mpeg2dec SUBDIR += gstreamer1-plugins-mpeg2enc SUBDIR += gstreamer1-plugins-mplex SUBDIR += gstreamer1-plugins-msdk SUBDIR += gstreamer1-plugins-openh264 SUBDIR += gstreamer1-plugins-resindvd SUBDIR += gstreamer1-plugins-rust SUBDIR += gstreamer1-plugins-smoothstreaming SUBDIR += gstreamer1-plugins-svt-av1 SUBDIR += gstreamer1-plugins-svt-vp9 SUBDIR += gstreamer1-plugins-theora SUBDIR += gstreamer1-plugins-ttml SUBDIR += gstreamer1-plugins-ugly SUBDIR += gstreamer1-plugins-v4l2 SUBDIR += gstreamer1-plugins-vpx SUBDIR += gstreamer1-plugins-webrtc SUBDIR += gstreamer1-plugins-x264 SUBDIR += gstreamer1-plugins-x265 SUBDIR += gstreamer1-rtsp-server SUBDIR += gstreamermm SUBDIR += gtk-pipe-viewer SUBDIR += gtk-youtube-viewer SUBDIR += guvcview SUBDIR += hana SUBDIR += handbrake SUBDIR += haruna SUBDIR += harvid SUBDIR += hdrprobe SUBDIR += helvum SUBDIR += hyprpwcenter SUBDIR += intel-media-sdk SUBDIR += iso2mkv SUBDIR += jellyfin SUBDIR += jellyfin-desktop + SUBDIR += jellyfin-ffmpeg SUBDIR += jellyfin-ffmpeg7 SUBDIR += kaffeine SUBDIR += kamoso SUBDIR += kasts SUBDIR += kdemultimedia SUBDIR += kdemultimedia-ffmpegthumbs SUBDIR += kdenlive SUBDIR += kew SUBDIR += kf5-kmediaplayer SUBDIR += kmplayer SUBDIR += kodi SUBDIR += kodi-addon-inputstream.adaptive SUBDIR += kodi-addon-peripheral.joystick SUBDIR += kodi-addon-pvr.hts SUBDIR += kodi-addon-pvr.iptvsimple SUBDIR += kodi-addon-screensaver.biogenesis SUBDIR += kodi-addon-screensaver.matrixtrails SUBDIR += kodi-addon-screensaver.stars SUBDIR += kodi-addon-visualization.fishbmc SUBDIR += kodi-addon-visualization.projectm SUBDIR += kodi-addon-visualization.shadertoy SUBDIR += kodi-addon-visualization.spectrum SUBDIR += kooha SUBDIR += kvazaar SUBDIR += l-smash SUBDIR += lebiniou SUBDIR += lebiniou-data SUBDIR += libaacs SUBDIR += libass SUBDIR += libbdplus SUBDIR += libbluray SUBDIR += libcec SUBDIR += libdc1394 SUBDIR += libdca SUBDIR += libdcadec SUBDIR += libde265 SUBDIR += libdv SUBDIR += libdvbcsa SUBDIR += libdvbpsi SUBDIR += libdvdcss SUBDIR += libdvdnav SUBDIR += libdvdread SUBDIR += libgav1 SUBDIR += libhdhomerun SUBDIR += libmatroska SUBDIR += libmediaart SUBDIR += libmediainfo SUBDIR += libmpeg2 SUBDIR += libmtp SUBDIR += libndi SUBDIR += libopenshot SUBDIR += librav1e SUBDIR += librespot SUBDIR += librist SUBDIR += libtheora SUBDIR += libtuner SUBDIR += libudfread SUBDIR += libuvc SUBDIR += libv4l SUBDIR += libva SUBDIR += libva-intel-driver SUBDIR += libva-intel-hybrid-driver SUBDIR += libva-intel-media-driver SUBDIR += libva-nvidia-driver SUBDIR += libva-utils SUBDIR += libva-vdpau-driver SUBDIR += libvdpau SUBDIR += libvdpau-va-gl SUBDIR += libvlcpp SUBDIR += libvpl SUBDIR += libvpl-tools SUBDIR += libvpx SUBDIR += libwebm SUBDIR += libx264 SUBDIR += libxine SUBDIR += libxspf SUBDIR += libzen SUBDIR += linux-c7-libtheora SUBDIR += linux-c7-libv4l SUBDIR += linux-rl9-aom SUBDIR += linux-rl9-ffmpeg SUBDIR += linux-rl9-gstreamer1 SUBDIR += linux-rl9-gstreamer1-libav SUBDIR += linux-rl9-libtheora SUBDIR += linux-rl9-libv4l SUBDIR += linux-rl9-libva SUBDIR += linux-rl9-libvdpau SUBDIR += linux-rl9-libvpx SUBDIR += linux-rl9-qt5-qtmultimedia SUBDIR += linux-rl9-vmaf SUBDIR += linux-tsmuxer SUBDIR += linux_dvbwrapper-kmod SUBDIR += livego SUBDIR += lives SUBDIR += lms SUBDIR += lsdvd SUBDIR += m2vrequantiser SUBDIR += makemkv SUBDIR += mediaelch SUBDIR += mediainfo SUBDIR += mediamtx SUBDIR += mencoder SUBDIR += minisatip SUBDIR += minitube SUBDIR += mjpegtools SUBDIR += mkclean SUBDIR += mkvalidator SUBDIR += mkvtoolnix SUBDIR += mlt7 SUBDIR += mlt7-glaxnimate SUBDIR += mlt7-qt SUBDIR += moonshine SUBDIR += motion SUBDIR += mp3cd SUBDIR += mp4v2 SUBDIR += mpc-qt SUBDIR += mplayer SUBDIR += mplayer-skins SUBDIR += mplex SUBDIR += mpv SUBDIR += mpv-mpris SUBDIR += mpvpaper SUBDIR += mpvqt SUBDIR += msopenh264 SUBDIR += mswebrtc SUBDIR += musikcube SUBDIR += musique SUBDIR += mxflib SUBDIR += mythtv SUBDIR += naludump SUBDIR += navidrome SUBDIR += neolink SUBDIR += nostt SUBDIR += nymphcastlib SUBDIR += nymphrpc SUBDIR += obs-multi-rtmp SUBDIR += obs-studio SUBDIR += obs-text-pthread SUBDIR += obs-waveform SUBDIR += obuparse SUBDIR += oggvideotools SUBDIR += ogmtools SUBDIR += olive SUBDIR += onevpl SUBDIR += openh264 SUBDIR += openshot SUBDIR += opentimelineio SUBDIR += opentoonz SUBDIR += oscam SUBDIR += ossia-score SUBDIR += p5-Audio-M4P SUBDIR += p5-FFmpeg-Command SUBDIR += p5-FLV-Info SUBDIR += p5-File-Format-RIFF SUBDIR += p5-MP4-Info SUBDIR += p5-Net-UPnP SUBDIR += p5-Subtitles SUBDIR += peek SUBDIR += phonon SUBDIR += phonon-designerplugin SUBDIR += phonon-mpv SUBDIR += phonon-vlc SUBDIR += photofilmstrip SUBDIR += pipe-viewer SUBDIR += pipewire SUBDIR += pitivi SUBDIR += plasmatube SUBDIR += playerctl SUBDIR += plexmediaserver SUBDIR += plexmediaserver-plexpass SUBDIR += podcastdl SUBDIR += poe SUBDIR += ptx-kmod SUBDIR += pwcbsd SUBDIR += pwcview SUBDIR += py-av SUBDIR += py-cec SUBDIR += py-enzyme SUBDIR += py-gstreamer1 SUBDIR += py-guessit SUBDIR += py-knowit SUBDIR += py-mat2 SUBDIR += py-metadata-cleaner SUBDIR += py-mido SUBDIR += py-moviepy SUBDIR += py-opentimelineio SUBDIR += py-periscope SUBDIR += py-pretty_midi SUBDIR += py-pymediainfo SUBDIR += py-pysubs2 SUBDIR += py-python-mpv SUBDIR += py-pytube SUBDIR += py-scenedetect SUBDIR += py-soco SUBDIR += py-srt SUBDIR += py-subliminal SUBDIR += py-tartube SUBDIR += py-torchcodec SUBDIR += py-trakit SUBDIR += py-ustreamer SUBDIR += qmmp-plugin-pack-qt5 SUBDIR += qmmp-plugin-pack-qt6 SUBDIR += qmmp-qt5 SUBDIR += qmmp-qt6 SUBDIR += qpwgraph SUBDIR += qt5-multimedia SUBDIR += qt6-multimedia SUBDIR += quodlibet SUBDIR += qwinff SUBDIR += rage SUBDIR += rav1e SUBDIR += recordmydesktop SUBDIR += replex SUBDIR += ringrtc SUBDIR += rubygem-av SUBDIR += rubygem-clutter-gstreamer SUBDIR += rubygem-flvtool2 SUBDIR += rubygem-gstreamer SUBDIR += rubygem-streamio-ffmpeg SUBDIR += scte35dump SUBDIR += sfml2 SUBDIR += sfml3 SUBDIR += shaka-packager SUBDIR += shotcut SUBDIR += shotcut-qt6 SUBDIR += showtime SUBDIR += simplescreenrecorder SUBDIR += smelter SUBDIR += smpeg SUBDIR += smpeg2 SUBDIR += smplayer SUBDIR += smplayer-skins SUBDIR += smplayer-themes SUBDIR += snapcast SUBDIR += streamlink SUBDIR += subtitlecomposer SUBDIR += subtitleoffsetmodifier SUBDIR += subtools SUBDIR += supersonic SUBDIR += svt-av1 SUBDIR += svt-av1-hdr SUBDIR += svt-hevc SUBDIR += svt-vp9 SUBDIR += syncplay SUBDIR += szap-s2 SUBDIR += tautulli SUBDIR += tenacity SUBDIR += termplay SUBDIR += termusic SUBDIR += tinyobjloader SUBDIR += tivodecode SUBDIR += totem SUBDIR += totem-pl-parser SUBDIR += tsduck SUBDIR += tvheadend SUBDIR += ustreamer SUBDIR += uvg266 SUBDIR += uxplay SUBDIR += v4l-utils SUBDIR += v4l_compat SUBDIR += vamps SUBDIR += vapoursynth SUBDIR += vapoursynth-l-smash-works SUBDIR += vapoursynth-vmaf SUBDIR += vcdgear SUBDIR += vcdimager SUBDIR += vdpauinfo SUBDIR += vid.stab SUBDIR += video-trimmer SUBDIR += vlc SUBDIR += vmaf SUBDIR += vvdec SUBDIR += vvenc SUBDIR += w_scan2 SUBDIR += webcamd SUBDIR += webcamoid SUBDIR += wf-recorder SUBDIR += winff SUBDIR += wireplumber SUBDIR += wl-screenrec SUBDIR += wlrobs SUBDIR += x264 SUBDIR += x265 SUBDIR += xanim SUBDIR += xawtv SUBDIR += xfce4-parole SUBDIR += xine SUBDIR += xporthdmv SUBDIR += xvid SUBDIR += yamdi SUBDIR += youtui SUBDIR += ytfzf SUBDIR += zart SUBDIR += zoneminder .include diff --git a/multimedia/jellyfin-ffmpeg/Makefile b/multimedia/jellyfin-ffmpeg/Makefile new file mode 100644 index 000000000000..ab4c9baa1c7b --- /dev/null +++ b/multimedia/jellyfin-ffmpeg/Makefile @@ -0,0 +1,132 @@ +PORTNAME= jellyfin-ffmpeg +PORTVERSION= 8.1.2.4 +CATEGORIES= multimedia + +MAINTAINER= michaeljohnson@ahze.net +COMMENT= FFmpeg with patches for HDR tone mapping (tonemapx/libplacebo) +WWW= https://github.com/jellyfin/jellyfin-ffmpeg + +LICENSE= GPLv2+ LGPL21+ +LICENSE_COMB= multi + +ONLY_FOR_ARCHS= aarch64 amd64 +ONLY_FOR_ARCHS_REASON= upstream jellyfin-ffmpeg targets 64-bit; 32-bit builds non-PIC asm that lld rejects + +BUILD_DEPENDS= nasm:devel/nasm \ + ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers +PATCH_DEPENDS= quilt:devel/quilt +LIB_DEPENDS= libass.so:multimedia/libass \ + libbluray.so:multimedia/libbluray \ + libchromaprint.so:audio/chromaprint \ + libdav1d.so:multimedia/dav1d \ + libfdk-aac.so:audio/fdk-aac \ + libfontconfig.so:x11-fonts/fontconfig \ + libfreetype.so:print/freetype2 \ + libfribidi.so:converters/fribidi \ + libgmp.so:math/gmp \ + libharfbuzz.so:print/harfbuzz \ + libmp3lame.so:audio/lame \ + libopenmpt.so:audio/libopenmpt \ + libopus.so:audio/opus \ + libplacebo.so:graphics/libplacebo \ + libshaderc_shared.so:graphics/shaderc \ + libSvtAv1Enc.so:multimedia/svt-av1 \ + libtheoraenc.so:multimedia/libtheora \ + libvorbis.so:audio/libvorbis \ + libvpx.so:multimedia/libvpx \ + libvulkan.so:graphics/vulkan-loader \ + libwebp.so:graphics/webp \ + libx264.so:multimedia/libx264 \ + libx265.so:multimedia/x265 \ + libzimg.so:graphics/sekrit-twc-zimg \ + libzvbi.so:devel/libzvbi \ + libgnutls.so:security/gnutls \ + libxml2.so:textproc/libxml2 \ + libiconv.so:converters/libiconv \ + libva.so:multimedia/libva \ + libva-drm.so:multimedia/libva \ + libdrm.so:graphics/libdrm \ + libvdpau.so:multimedia/libvdpau \ + libX11.so:x11/libX11 \ + libasound.so:audio/alsa-lib \ + libsndio.so:audio/sndio + +USES= compiler:c17 gmake localbase:ldflags pkgconfig tar:xz +USE_GITHUB= yes +GH_ACCOUNT= jellyfin +GH_PROJECT= jellyfin-ffmpeg +GH_TAGNAME= v${PORTVERSION:C/\.([0-9]+)$/-\1/} + +# Everything installs into a private subdir so nothing collides with +# multimedia/ffmpeg or jellyfin-ffmpeg7; only the suffixed bin/ symlinks land +# in PREFIX. --enable-rpath lets the binary load the bundled libs without +# ldconfig even when base ffmpeg shares the same soname. +JFFMPEG_DIR= ${PREFIX}/lib/jellyfin-ffmpeg8 + +post-patch: + cd ${WRKSRC} && QUILT_PATCHES=debian/patches quilt push -a || \ + QUILT_PATCHES=debian/patches quilt applied | ${GREP} -q 0098 + +HAS_CONFIGURE= yes +CONFIGURE_LOG= ffbuild/config.log +NOPRECIOUSMAKEVARS= yes + +MAKE_ENV+= V=1 + +CONFIGURE_ARGS= --prefix="${JFFMPEG_DIR}" \ + --libdir="${JFFMPEG_DIR}/lib" \ + --enable-rpath \ + --target-os=freebsd \ + --cc="${CC}" --cxx="${CXX}" \ + --extra-version=Jellyfin \ + --disable-unstable \ + --disable-doc \ + --disable-ffplay \ + --disable-static \ + --disable-libxcb \ + --disable-sdl2 \ + --disable-xlib \ + --enable-lto=auto \ + --enable-gpl \ + --enable-version3 \ + --enable-shared \ + --enable-gmp \ + --enable-gnutls \ + --enable-libxml2 \ + --enable-libass \ + --enable-libfreetype \ + --enable-libfribidi \ + --enable-libfontconfig \ + --enable-libharfbuzz \ + --enable-libbluray \ + --enable-chromaprint \ + --enable-libdrm \ + --enable-libfdk-aac \ + --enable-libmp3lame \ + --enable-libopenmpt \ + --enable-libopus \ + --enable-libtheora \ + --enable-libvorbis \ + --enable-libdav1d \ + --enable-libsvtav1 \ + --enable-libwebp \ + --enable-libvpx \ + --enable-libx264 \ + --enable-libx265 \ + --enable-libzimg \ + --enable-libzvbi \ + --enable-libplacebo \ + --enable-libshaderc \ + --enable-vulkan \ + --enable-vaapi \ + --enable-vdpau \ + --disable-ffnvcodec + +INSTALL_TARGET= install-progs install-data install-libs + +post-install: + # Version-suffixed symlinks in /usr/local/bin for PATH access + ${LN} -sf ../lib/jellyfin-ffmpeg8/bin/ffmpeg ${STAGEDIR}${PREFIX}/bin/jellyfin-ffmpeg8 + ${LN} -sf ../lib/jellyfin-ffmpeg8/bin/ffprobe ${STAGEDIR}${PREFIX}/bin/jellyfin-ffprobe8 + +.include diff --git a/multimedia/jellyfin-ffmpeg/distinfo b/multimedia/jellyfin-ffmpeg/distinfo new file mode 100644 index 000000000000..ef5adb38d3dd --- /dev/null +++ b/multimedia/jellyfin-ffmpeg/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1788678647 +SHA256 (jellyfin-jellyfin-ffmpeg-8.1.2.4-v8.1.2-4_GH0.tar.gz) = eeb6b4a095193520293e59e2f9a17e7126ba697cc7e194377f7f63919988e6e0 +SIZE (jellyfin-jellyfin-ffmpeg-8.1.2.4-v8.1.2-4_GH0.tar.gz) = 17717861 diff --git a/multimedia/jellyfin-ffmpeg/pkg-descr b/multimedia/jellyfin-ffmpeg/pkg-descr new file mode 100644 index 000000000000..9778cf52da00 --- /dev/null +++ b/multimedia/jellyfin-ffmpeg/pkg-descr @@ -0,0 +1,2 @@ +FFmpeg with Jellyfin patches for HDR tone mapping, including the SIMD-optimized +tonemapx filter (libplacebo-based HDR to SDR conversion). diff --git a/multimedia/jellyfin-ffmpeg/pkg-plist b/multimedia/jellyfin-ffmpeg/pkg-plist new file mode 100644 index 000000000000..ebbf4ccf0489 --- /dev/null +++ b/multimedia/jellyfin-ffmpeg/pkg-plist @@ -0,0 +1,31 @@ +bin/jellyfin-ffmpeg8 +bin/jellyfin-ffprobe8 +lib/jellyfin-ffmpeg8/bin/ffmpeg +lib/jellyfin-ffmpeg8/bin/ffprobe +lib/jellyfin-ffmpeg8/lib/libavcodec.so +lib/jellyfin-ffmpeg8/lib/libavcodec.so.62 +lib/jellyfin-ffmpeg8/lib/libavcodec.so.62.28.102 +lib/jellyfin-ffmpeg8/lib/libavdevice.so +lib/jellyfin-ffmpeg8/lib/libavdevice.so.62 +lib/jellyfin-ffmpeg8/lib/libavdevice.so.62.3.102 +lib/jellyfin-ffmpeg8/lib/libavfilter.so +lib/jellyfin-ffmpeg8/lib/libavfilter.so.11 +lib/jellyfin-ffmpeg8/lib/libavfilter.so.11.14.102 +lib/jellyfin-ffmpeg8/lib/libavformat.so +lib/jellyfin-ffmpeg8/lib/libavformat.so.62 +lib/jellyfin-ffmpeg8/lib/libavformat.so.62.12.102 +lib/jellyfin-ffmpeg8/lib/libavutil.so +lib/jellyfin-ffmpeg8/lib/libavutil.so.60 +lib/jellyfin-ffmpeg8/lib/libavutil.so.60.26.102 +lib/jellyfin-ffmpeg8/lib/libswresample.so +lib/jellyfin-ffmpeg8/lib/libswresample.so.6 +lib/jellyfin-ffmpeg8/lib/libswresample.so.6.3.102 +lib/jellyfin-ffmpeg8/lib/libswscale.so +lib/jellyfin-ffmpeg8/lib/libswscale.so.9 +lib/jellyfin-ffmpeg8/lib/libswscale.so.9.5.102 +lib/jellyfin-ffmpeg8/share/ffmpeg/ffprobe.xsd +lib/jellyfin-ffmpeg8/share/ffmpeg/libvpx-1080p.ffpreset +lib/jellyfin-ffmpeg8/share/ffmpeg/libvpx-1080p50_60.ffpreset +lib/jellyfin-ffmpeg8/share/ffmpeg/libvpx-360p.ffpreset +lib/jellyfin-ffmpeg8/share/ffmpeg/libvpx-720p.ffpreset +lib/jellyfin-ffmpeg8/share/ffmpeg/libvpx-720p50_60.ffpreset