├── .gitignore ├── CMakeLists.txt ├── Makefile ├── README.md ├── check-dependencies ├── debian ├── changelog ├── compat ├── control ├── install └── rules ├── patches ├── ffmpeg │ ├── 0002-nut-repeat-headers.patch │ ├── 0003-qsv-winmaxavg.patch │ ├── 0004-qsv-force-exit-on-decoding-failure.patch │ ├── 0005-qsv-force-avc-decoding-level.patch │ ├── 0006-rotation-fix-metadata.patch │ ├── 0007-qsv-initial-pool-size.patch │ ├── 0008-restore-flv-muxer-previous-behaviour.patch │ └── 0009-netint-4.1.0-rc4.patch ├── intel-media-sdk │ ├── 0001-install-prefix.patch │ └── 0002-samples.patch ├── patch-manager.sh └── xvidcore │ └── 0001-no-shared-lib.patch └── vendor ├── aom-v3.3.0.tgz ├── expat-2.4.8.tar.xz ├── fdk-aac-2.0.2.tar.gz ├── ffmpeg-5.1.2.tar.bz2 ├── fontconfig-2.14.0.tar.gz ├── freetype-2.12.1.tar.gz ├── fribidi-1.0.12.tar.xz ├── frmxtract-5.1.tar.gz ├── gperf-3.1.tar.gz ├── gputop-22.4.4.tar.gz ├── harfbuzz-5.1.0.tar.xz ├── intel-gmmlib-22.1.7.tar.gz ├── intel-libva-2.15.0.tar.bz2 ├── intel-media-driver-22.4.4.tar.gz ├── intel-media-sdk-22.4.4.tar.gz ├── lame-3.100.tar.gz ├── libass-0.16.0.tar.xz ├── libdrm-2.4.100.tar.bz2 ├── libogg-1.3.5.tar.gz ├── libpciaccess-0.16.tar.gz ├── libpng-1.6.37.tar.gz ├── libtheora-1.2.0alpha1.tar.gz ├── libtool-2.4.7.tar.gz ├── libvorbis-1.3.7.tar.gz ├── libvpx-1.12.0.tar.gz ├── libxcoder-4.1.0-rc4.tar.gz ├── nasm-2.15.05.tar.gz ├── opencore-amr-0.1.6.tar.gz ├── openssl-1.1.1q.tar.gz ├── opus-1.3.1.tar.gz ├── speex-1.2.1.tar.gz ├── srt-v1.5.0.tar.gz ├── x264-20220602-0131-stable.tar.gz ├── x265_3.5.tar.gz ├── xorg-macros-1.19.1.tar.gz ├── xvidcore-1.3.7.tar.gz ├── zimg-3.0.4.tar.gz └── zlib-v1.2.12.tar.gz /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | debian/sffmpeg 3 | debian/files 4 | debian/*substvars* 5 | debian/*debhelper* 6 | _* 7 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(sffmpeg) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.6) 4 | INCLUDE(ExternalProject) 5 | INCLUDE_DIRECTORIES(BEFORE ${CMAKE_BINARY_DIR}/include) 6 | LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lib) 7 | SET(ENV{PATH} ${CMAKE_BINARY_DIR}/bin:$ENV{PATH}) 8 | SET(ENV{PKG_CONFIG_PATH} ${CMAKE_BINARY_DIR}/lib/pkgconfig) 9 | 10 | EXTERNALPROJECT_ADD( 11 | openssl 12 | # URL https://www.openssl.org/source/openssl-1.1.1q.tar.gz 13 | URL ${CMAKE_SOURCE_DIR}/vendor/openssl-1.1.1q.tar.gz 14 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh openssl 15 | CONFIGURE_COMMAND ./config no-shared no-idea no-mdc2 no-rc5 --prefix=${CMAKE_BINARY_DIR} 16 | BUILD_COMMAND make depend && make -j${CONCURRENCY} 17 | INSTALL_COMMAND make install_sw 18 | BUILD_IN_SOURCE 1 19 | ) 20 | EXTERNALPROJECT_ADD( 21 | opencore-amr 22 | # URL https://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz 23 | URL ${CMAKE_SOURCE_DIR}/vendor/opencore-amr-0.1.6.tar.gz 24 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh opencore-amr 25 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared 26 | BUILD_COMMAND make -j${CONCURRENCY} 27 | BUILD_IN_SOURCE 1 28 | ) 29 | EXTERNALPROJECT_ADD( 30 | fdkaac 31 | # URL https://downloads.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-2.0.2.tar.gz 32 | URL ${CMAKE_SOURCE_DIR}/vendor/fdk-aac-2.0.2.tar.gz 33 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh fdkaac 34 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 35 | BUILD_COMMAND make -j${CONCURRENCY} 36 | BUILD_IN_SOURCE 1 37 | ) 38 | EXTERNALPROJECT_ADD( 39 | lame 40 | # URL https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz 41 | URL ${CMAKE_SOURCE_DIR}/vendor/lame-3.100.tar.gz 42 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh lame 43 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared 44 | BUILD_COMMAND make -j${CONCURRENCY} 45 | BUILD_IN_SOURCE 1 46 | ) 47 | EXTERNALPROJECT_ADD( 48 | libogg 49 | # URL https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.gz 50 | URL ${CMAKE_SOURCE_DIR}/vendor/libogg-1.3.5.tar.gz 51 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libogg 52 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared 53 | BUILD_COMMAND make -j${CONCURRENCY} 54 | BUILD_IN_SOURCE 1 55 | ) 56 | EXTERNALPROJECT_ADD( 57 | speex 58 | DEPENDS libogg 59 | # URL https://downloads.xiph.org/releases/speex/speex-1.2.1.tar.gz 60 | URL ${CMAKE_SOURCE_DIR}/vendor/speex-1.2.1.tar.gz 61 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh speex 62 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-sse --disable-oggtest --with-ogg=${CMAKE_BINARY_DIR} 63 | BUILD_COMMAND make -j${CONCURRENCY} 64 | BUILD_IN_SOURCE 1 65 | ) 66 | EXTERNALPROJECT_ADD( 67 | libvorbis 68 | DEPENDS libogg 69 | # URL https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.gz 70 | URL ${CMAKE_SOURCE_DIR}/vendor/libvorbis-1.3.7.tar.gz 71 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libvorbis 72 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --disable-oggtest --with-ogg=${CMAKE_BINARY_DIR} 73 | BUILD_COMMAND make -j${CONCURRENCY} 74 | BUILD_IN_SOURCE 1 75 | ) 76 | EXTERNALPROJECT_ADD( 77 | libtheora 78 | DEPENDS libogg 79 | # URL https://downloads.xiph.org/releases/theora/libtheora-1.2.0alpha1.tar.gz 80 | URL ${CMAKE_SOURCE_DIR}/vendor/libtheora-1.2.0alpha1.tar.gz 81 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libtheora 82 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --disable-oggtest --disable-examples --with-ogg=${CMAKE_BINARY_DIR} 83 | BUILD_COMMAND make -j${CONCURRENCY} 84 | BUILD_IN_SOURCE 1 85 | ) 86 | EXTERNALPROJECT_ADD( 87 | opus 88 | # URL https://downloads.xiph.org/releases/opus/opus-1.3.1.tar.gz 89 | URL ${CMAKE_SOURCE_DIR}/vendor/opus-1.3.1.tar.gz 90 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh opus 91 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --disable-doc 92 | BUILD_COMMAND make -j${CONCURRENCY} 93 | BUILD_IN_SOURCE 1 94 | ) 95 | EXTERNALPROJECT_ADD( 96 | nasm 97 | # URL https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz 98 | URL ${CMAKE_SOURCE_DIR}/vendor/nasm-2.15.05.tar.gz 99 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh nasm 100 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} 101 | BUILD_COMMAND make -j${CONCURRENCY} 102 | BUILD_IN_SOURCE 1 103 | ) 104 | EXTERNALPROJECT_ADD( 105 | xvidcore 106 | DEPENDS nasm 107 | # URL https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz 108 | URL ${CMAKE_SOURCE_DIR}/vendor/xvidcore-1.3.7.tar.gz 109 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh xvidcore 110 | CONFIGURE_COMMAND cd build/generic && PATH=$ENV{PATH} ./configure --prefix=${CMAKE_BINARY_DIR} 111 | BUILD_COMMAND cd build/generic && PATH=$ENV{PATH} make -j${CONCURRENCY} 112 | INSTALL_COMMAND cd build/generic && make install 113 | BUILD_IN_SOURCE 1 114 | ) 115 | EXTERNALPROJECT_ADD( 116 | x264 117 | DEPENDS nasm 118 | # GIT_REPOSITORY git://code.videolan.org/videolan/x264 119 | URL ${CMAKE_SOURCE_DIR}/vendor/x264-20220602-0131-stable.tar.gz 120 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh x264 121 | CONFIGURE_COMMAND PATH=$ENV{PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --enable-static 122 | BUILD_COMMAND PATH=$ENV{PATH} make -j${CONCURRENCY} 123 | BUILD_IN_SOURCE 1 124 | ) 125 | EXTERNALPROJECT_ADD( 126 | x265 127 | DEPENDS nasm 128 | # URL https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz 129 | URL ${CMAKE_SOURCE_DIR}/vendor/x265_3.5.tar.gz 130 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh x265 131 | CONFIGURE_COMMAND cd build/linux && PATH=$ENV{PATH} cmake -G "Unix Makefiles" -D CMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR} -D ENABLE_CLI:BOOL=OFF -D ENABLE_SHARED:BOOL=OFF ../../source 132 | BUILD_COMMAND cd build/linux && PATH=$ENV{PATH} make -j${CONCURRENCY} 133 | INSTALL_COMMAND cd build/linux && PATH=$ENV{PATH} make install 134 | BUILD_IN_SOURCE 1 135 | ) 136 | EXTERNALPROJECT_ADD( 137 | aom 138 | DEPENDS nasm 139 | # GIT_REPOSITORY git://aomedia.googlesource.com/aom.git 140 | URL ${CMAKE_SOURCE_DIR}/vendor/aom-v3.3.0.tgz 141 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh aom 142 | CONFIGURE_COMMAND cd build && PATH=$ENV{PATH} cmake .. -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} 143 | BUILD_COMMAND cd build && PATH=$ENV{PATH} make -j${CONCURRENCY} 144 | INSTALL_COMMAND cd build && PATH=$ENV{PATH} make install 145 | BUILD_IN_SOURCE 1 146 | ) 147 | EXTERNALPROJECT_ADD( 148 | libvpx 149 | DEPENDS nasm 150 | # URL https://github.com/webmproject/libvpx/archive/refs/tags/v1.12.0.tar.gz 151 | URL ${CMAKE_SOURCE_DIR}/vendor/libvpx-1.12.0.tar.gz 152 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libvpx 153 | CONFIGURE_COMMAND PATH=$ENV{PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared 154 | BUILD_COMMAND PATH=$ENV{PATH} make -j${CONCURRENCY} 155 | BUILD_IN_SOURCE 1 156 | ) 157 | EXTERNALPROJECT_ADD( 158 | srt 159 | DEPENDS openssl 160 | # URL https://github.com/Haivision/srt/archive/refs/tags/v1.5.0.tar.gz 161 | URL ${CMAKE_SOURCE_DIR}/vendor/srt-v1.5.0.tar.gz 162 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh srt 163 | CONFIGURE_COMMAND mkdir -p build && cd build && PATH=$ENV{PATH} PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} cmake -DENABLE_SHARED=0 -DENABLE_APPS=0 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} .. 164 | BUILD_COMMAND cd build && PATH=$ENV{PATH} make -j${CONCURRENCY} 165 | INSTALL_COMMAND cd build && PATH=$ENV{PATH} make install 166 | BUILD_IN_SOURCE 1 167 | ) 168 | EXTERNALPROJECT_ADD( 169 | zlib 170 | # URL https://github.com/madler/zlib/archive/refs/tags/v1.2.12.tar.gz 171 | URL ${CMAKE_SOURCE_DIR}/vendor/zlib-v1.2.12.tar.gz 172 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh zlib 173 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --static 174 | BUILD_COMMAND make -j${CONCURRENCY} 175 | BUILD_IN_SOURCE 1 176 | ) 177 | EXTERNALPROJECT_ADD( 178 | libpng 179 | DEPENDS zlib 180 | # URL https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz 181 | URL ${CMAKE_SOURCE_DIR}/vendor/libpng-1.6.37.tar.gz 182 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libpng 183 | CONFIGURE_COMMAND CFLAGS=-I${CMAKE_BINARY_DIR}/include CPPFLAGS=-I${CMAKE_BINARY_DIR}/include LDFLAGS=-L${CMAKE_BINARY_DIR}/lib ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 184 | BUILD_COMMAND make -j${CONCURRENCY} 185 | BUILD_IN_SOURCE 1 186 | ) 187 | EXTERNALPROJECT_ADD( 188 | freetype 189 | DEPENDS libpng zlib 190 | # URL https://download.savannah.gnu.org/releases/freetype/freetype-2.12.1.tar.gz 191 | URL ${CMAKE_SOURCE_DIR}/vendor/freetype-2.12.1.tar.gz 192 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh freetype 193 | CONFIGURE_COMMAND PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static --with-zlib 194 | BUILD_COMMAND make -j${CONCURRENCY} 195 | INSTALL_COMMAND make install && ln -s ${CMAKE_BINARY_DIR}/include/freetype2 ${CMAKE_BINARY_DIR}/include/freetype2/freetype 196 | BUILD_IN_SOURCE 1 197 | ) 198 | EXTERNALPROJECT_ADD( 199 | fribidi 200 | # URL https://github.com/fribidi/fribidi/releases/download/v1.0.12/fribidi-1.0.12.tar.xz 201 | URL ${CMAKE_SOURCE_DIR}/vendor/fribidi-1.0.12.tar.xz 202 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh fribidi 203 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 204 | BUILD_COMMAND make -j${CONCURRENCY} 205 | BUILD_IN_SOURCE 1 206 | ) 207 | EXTERNALPROJECT_ADD( 208 | expat 209 | # URL https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.xz 210 | URL ${CMAKE_SOURCE_DIR}/vendor/expat-2.4.8.tar.xz 211 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh expat 212 | CONFIGURE_COMMAND PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 213 | BUILD_COMMAND make -j${CONCURRENCY} 214 | BUILD_IN_SOURCE 1 215 | ) 216 | EXTERNALPROJECT_ADD( 217 | gperf 218 | # URL http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz 219 | URL ${CMAKE_SOURCE_DIR}/vendor/gperf-3.1.tar.gz 220 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 221 | BUILD_COMMAND make -j${CONCURRENCY} 222 | BUILD_IN_SOURCE 1 223 | ) 224 | EXTERNALPROJECT_ADD( 225 | fontconfig 226 | DEPENDS freetype expat gperf 227 | # URL https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.14.0.tar.gz 228 | URL ${CMAKE_SOURCE_DIR}/vendor/fontconfig-2.14.0.tar.gz 229 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh fontconfig 230 | CONFIGURE_COMMAND PATH=$ENV{PATH} PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 231 | BUILD_COMMAND PATH=$ENV{PATH} make -j${CONCURRENCY} 232 | BUILD_IN_SOURCE 1 233 | ) 234 | EXTERNALPROJECT_ADD( 235 | harfbuzz 236 | DEPENDS fontconfig 237 | # URL https://github.com/harfbuzz/harfbuzz/releases/download/5.1.0/harfbuzz-5.1.0.tar.xz 238 | URL ${CMAKE_SOURCE_DIR}/vendor/harfbuzz-5.1.0.tar.xz 239 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh harfbuzz 240 | CONFIGURE_COMMAND PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 241 | BUILD_COMMAND make -j${CONCURRENCY} 242 | BUILD_IN_SOURCE 1 243 | ) 244 | EXTERNALPROJECT_ADD( 245 | libass 246 | DEPENDS nasm fribidi harfbuzz 247 | # URL https://github.com/libass/libass/releases/download/0.16.0/libass-0.16.0.tar.xz 248 | URL ${CMAKE_SOURCE_DIR}/vendor/libass-0.16.0.tar.xz 249 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libass 250 | CONFIGURE_COMMAND PATH=$ENV{PATH} PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 251 | BUILD_COMMAND PATH=$ENV{PATH} make -j${CONCURRENCY} 252 | BUILD_IN_SOURCE 1 253 | ) 254 | EXTERNALPROJECT_ADD( 255 | libtool 256 | # URL https://ftpmirror.gnu.org/libtool/libtool-2.4.7.tar.gz 257 | URL ${CMAKE_SOURCE_DIR}/vendor/libtool-2.4.7.tar.gz 258 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 259 | BUILD_COMMAND make -j${CONCURRENCY} 260 | BUILD_IN_SOURCE 1 261 | ) 262 | EXTERNALPROJECT_ADD( 263 | zimg 264 | DEPENDS nasm libtool 265 | # URL https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.4.tar.gz 266 | URL ${CMAKE_SOURCE_DIR}/vendor/zimg-3.0.4.tar.gz 267 | CONFIGURE_COMMAND PATH=$ENV{PATH} ACLOCAL_PATH=${CMAKE_BINARY_DIR}/share/aclocal ./autogen.sh && ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --enable-static 268 | BUILD_IN_SOURCE 1 269 | ) 270 | EXTERNALPROJECT_ADD( 271 | xorg-macros 272 | # URL https://github.com/freedesktop/xorg-macros/archive/refs/tags/util-macros-1.19.1.tar.gz 273 | URL ${CMAKE_SOURCE_DIR}/vendor/xorg-macros-1.19.1.tar.gz 274 | CONFIGURE_COMMAND PATH=$ENV{PATH} ./autogen.sh && ./configure --prefix=${CMAKE_BINARY_DIR} 275 | BUILD_IN_SOURCE 1 276 | ) 277 | EXTERNALPROJECT_ADD( 278 | libpciaccess 279 | DEPENDS xorg-macros libtool 280 | # URL https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/archive/libpciaccess-0.16/libpciaccess-libpciaccess-0.16.tar.gz 281 | URL ${CMAKE_SOURCE_DIR}/vendor/libpciaccess-0.16.tar.gz 282 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libpciaccess 283 | CONFIGURE_COMMAND PATH=$ENV{PATH} ACLOCAL_PATH=${CMAKE_BINARY_DIR}/share/aclocal ./autogen.sh && CFLAGS=-fPIC ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared 284 | BUILD_COMMAND make -j${CONCURRENCY} 285 | BUILD_IN_SOURCE 1 286 | ) 287 | EXTERNALPROJECT_ADD( 288 | libdrm 289 | DEPENDS libpciaccess 290 | # URL https://dri.freedesktop.org/libdrm/libdrm-2.4.100.tar.bz2 291 | URL ${CMAKE_SOURCE_DIR}/vendor/libdrm-2.4.100.tar.bz2 292 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libdrm 293 | CONFIGURE_COMMAND PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} CFLAGS=-fPIC ./configure --prefix=${CMAKE_BINARY_DIR} --disable-vmwgfx --disable-radeon --disable-amdgpu --disable-nouveau --disable-shared 294 | BUILD_COMMAND make -j${CONCURRENCY} 295 | BUILD_IN_SOURCE 1 296 | ) 297 | EXTERNALPROJECT_ADD( 298 | libva 299 | DEPENDS libdrm 300 | # URL https://github.com/intel/libva/releases/download/2.15.0/libva-2.15.0.tar.bz2 301 | URL ${CMAKE_SOURCE_DIR}/vendor/intel-libva-2.15.0.tar.bz2 302 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libva 303 | CONFIGURE_COMMAND PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} CFLAGS=-fPIC ./configure --prefix=${CMAKE_BINARY_DIR} --disable-shared --with-drivers-path=/usr/local/lib/dri 304 | BUILD_COMMAND make -j${CONCURRENCY} 305 | BUILD_IN_SOURCE 1 306 | ) 307 | EXTERNALPROJECT_ADD( 308 | gmmlib 309 | # URL https://github.com/intel/gmmlib/archive/refs/tags/intel-gmmlib-22.1.7.tar.gz 310 | URL ${CMAKE_SOURCE_DIR}/vendor/intel-gmmlib-22.1.7.tar.gz 311 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh gmmlib 312 | CONFIGURE_COMMAND mkdir -p build && cd build && PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} cmake -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_BINARY_DIR}/include -DCMAKE_INSTALL_LIBDIR=${CMAKE_BINARY_DIR}/lib .. 313 | BUILD_COMMAND cd build && make -j${CONCURRENCY} 314 | INSTALL_COMMAND cd build && make install 315 | BUILD_IN_SOURCE 1 316 | ) 317 | EXTERNALPROJECT_ADD( 318 | intel-media-driver 319 | DEPENDS libva gmmlib 320 | # URL https://github.com/intel/media-driver/archive/refs/tags/intel-media-22.4.4.tar.gz 321 | URL ${CMAKE_SOURCE_DIR}/vendor/intel-media-driver-22.4.4.tar.gz 322 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh intel-media-driver 323 | CONFIGURE_COMMAND mkdir -p build && cd build && PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DLIBVA_DRIVERS_PATH=${CMAKE_BINARY_DIR}/lib/dri -DMEDIA_RUN_TEST_SUITE=0 .. 324 | BUILD_COMMAND cd build && make -j${CONCURRENCY} 325 | INSTALL_COMMAND cd build && make install 326 | BUILD_IN_SOURCE 1 327 | ) 328 | EXTERNALPROJECT_ADD( 329 | intel-media-sdk 330 | DEPENDS intel-media-driver 331 | # URL https://github.com/Intel-Media-SDK/MediaSDK/archive/refs/tags/intel-mediasdk-22.4.4.tar.gz 332 | URL ${CMAKE_SOURCE_DIR}/vendor/intel-media-sdk-22.4.4.tar.gz 333 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh intel-media-sdk 334 | CONFIGURE_COMMAND mkdir -p build && cd build && PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DMFX_MODULES_DIR=/usr/local/lib -DMFX_PLUGINS_CONF_DIR=/usr/local/lib/mfx -DMFX_PLUGINS_DIR=/usr/local/lib/mfx -DMFX_APPS_DIR=${CMAKE_BINARY_DIR} -DBUILD_TUTORIALS=OFF .. 335 | BUILD_COMMAND cd build && make -j${CONCURRENCY} 336 | INSTALL_COMMAND cd build && make install 337 | BUILD_IN_SOURCE 1 338 | ) 339 | EXTERNALPROJECT_ADD( 340 | gputop 341 | DEPENDS intel-media-sdk 342 | URL ${CMAKE_SOURCE_DIR}/vendor/gputop-22.4.4.tar.gz 343 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh gputop 344 | CONFIGURE_COMMAND CFLAGS=-I${CMAKE_BINARY_DIR}/samples LDFLAGS=-L${CMAKE_BINARY_DIR}/samples ./configure --prefix=${CMAKE_BINARY_DIR} 345 | BUILD_COMMAND make -j${CONCURRENCY} 346 | BUILD_IN_SOURCE 1 347 | ) 348 | EXTERNALPROJECT_ADD( 349 | libxcoder 350 | URL ${CMAKE_SOURCE_DIR}/vendor/libxcoder-4.1.0-rc4.tar.gz 351 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh libxcoder 352 | CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} 353 | BUILD_COMMAND make -j${CONCURRENCY} 354 | INSTALL_COMMAND make install && rm ${CMAKE_BINARY_DIR}/lib/libxcoder.so 355 | BUILD_IN_SOURCE 1 356 | ) 357 | EXTERNALPROJECT_ADD( 358 | ffmpeg 359 | DEPENDS nasm zlib openssl opencore-amr fdkaac lame libogg opus speex libvorbis libtheora xvidcore x264 x265 aom libvpx srt freetype libass zimg intel-media-sdk libxcoder 360 | # URL https://ffmpeg.org/releases/ffmpeg-5.1.2.tar.bz2 361 | URL ${CMAKE_SOURCE_DIR}/vendor/ffmpeg-5.1.2.tar.bz2 362 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh ffmpeg 363 | CONFIGURE_COMMAND PATH=$ENV{PATH} PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} ./configure --prefix=${CMAKE_BINARY_DIR} --datadir=${CMAKE_BINARY_DIR}/etc --pkg-config-flags=--static --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --disable-doc --disable-debug --disable-ffplay --disable-indevs --disable-outdevs --extra-cflags=-I${CMAKE_BINARY_DIR}/include\ --static --extra-ldflags=-L${CMAKE_BINARY_DIR}/lib --extra-libs=-lvorbis\ -logg\ -lcrypto\ -lexpat\ -lharfbuzz\ -lfribidi\ -lz\ -ldrm\ -lpthread\ -lstdc++\ -lm\ -ldl\ -lrt --enable-openssl --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libx265 --enable-libaom --enable-libvpx --enable-libsrt --enable-libfontconfig --enable-libfreetype --enable-libass --enable-libzimg --enable-vaapi --enable-libmfx --enable-libxcoder --enable-ni_quadra --disable-filter=hwupload_ni_logan 364 | BUILD_COMMAND PATH=$ENV{PATH} make -j${CONCURRENCY} 365 | BUILD_IN_SOURCE 1 366 | ) 367 | EXTERNALPROJECT_ADD( 368 | frmxtract 369 | DEPENDS ffmpeg libpng 370 | URL ${CMAKE_SOURCE_DIR}/vendor/frmxtract-5.1.tar.gz 371 | PATCH_COMMAND ${CMAKE_SOURCE_DIR}/patches/patch-manager.sh frmxtract 372 | CONFIGURE_COMMAND A=E CC=${CMAKE_C_COMPILER} PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} EXTRA_LIBS=libdrm ./configure --prefix=${CMAKE_BINARY_DIR} 373 | BUILD_COMMAND make -j${CONCURRENCY} 374 | BUILD_IN_SOURCE 1 375 | ) 376 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | CONCURRENCY=`cat /proc/cpuinfo |grep ^processor |head |wc -l` 2 | 3 | sffmpeg: 4 | @./check-dependencies 5 | @mkdir -p build && cd build && cmake -DCONCURRENCY=$(CONCURRENCY) .. && \ 6 | make -k -j$(CONCURRENCY) 2>&1 |tee build.log 7 | 8 | clean: 9 | distclean: clean 10 | @rm -rf build 11 | 12 | deb: 13 | @debuild -i -us -uc -b 14 | debclean: 15 | @debuild -- clean 16 | @rm -f ../sffmpeg_* 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Static FFmpeg Build 2 | `sffmpeg` is a simple CMake-based full-featured FFmpeg build helper. 3 | 4 | It currently works on Linux and other POSIX systems (with a few tweaks). It has been tested the most heavily on Linux/x86_64 5 | (Ubuntu 18.04). This helper is regularly updated with the latest versions of the FFmpeg dependencies, and provides an effective 6 | way to build, test and compare multiple versions of FFmpeg on the same machine. 7 | 8 | ## Build Dependencies 9 | `sffmpeg` requires the following software to be installed in order to build: 10 | 11 | - a recent version of [cmake](http://www.cmake.org/) (3.6+) 12 | - a recent version of [gcc/g++](http://gcc.gnu.org/) (7.x+) 13 | - the [autoconf](http://www.gnu.org/software/autoconf/) and [automake](http://www.gnu.org/software/automake/) utilities 14 | - the [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/) utility 15 | 16 | A dependencies check is automatically performed and the build is aborted if a dependency is missing. 17 | 18 | ## Usage 19 | Just type the following commands at the shell prompt: 20 | 21 | $ git clone https://github.com/pyke369/sffmpeg 22 | $ cd sffmpeg 23 | $ make 24 | 25 | Then go grab a coffee (or maybe ten). The helper will compile all FFmpeg dependencies for you. Once done, you should get an 26 | FFmpeg binary in the `build/bin` directory (with all dependencies statically linked-in). 27 | ``` 28 | ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers 29 | libavutil 57. 28.100 / 57. 28.100 30 | libavcodec 59. 37.100 / 59. 37.100 31 | libavformat 59. 27.100 / 59. 27.100 32 | libavdevice 59. 7.100 / 59. 7.100 33 | libavfilter 8. 44.100 / 8. 44.100 34 | libswscale 6. 7.100 / 6. 7.100 35 | libswresample 4. 7.100 / 4. 7.100 36 | libpostproc 56. 6.100 / 56. 6.100 37 | Hyper fast Audio and Video encoder 38 | usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 39 | ``` 40 | From there, you may use the binary immediately or build a Debian package for later deployment (see below). 41 | 42 | ## Packaging 43 | (requires the `devscripts` package) 44 | 45 | You may optionally build a Debian package by typing the following command at the shell prompt: 46 | ``` 47 | $ make deb 48 | ``` 49 | 50 | The `ffmpeg`, `ffprobe` and `frmxtract` binaries will be installed by the package in the `/usr/local/bin` directory. 51 | ``` 52 | $ sudo dpkg -i ../sffmpeg_5.1.2_amd64.deb 53 | Selecting previously unselected package sffmpeg. 54 | Unpacking sffmpeg (5.1.2) ... 55 | Setting up sffmpeg (5.1.2) ... 56 | ``` 57 | -------------------------------------------------------------------------------- /check-dependencies: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -A missing 4 | 5 | cmake --version >/dev/null 2>&1 6 | if [ $? != 0 ]; then missing[cmake]=cmake; fi 7 | 8 | gcc --version >/dev/null 2>&1 9 | if [ $? != 0 ]; then missing[gcc]=build-essential; fi 10 | 11 | g++ --version >/dev/null 2>&1 12 | if [ $? != 0 ]; then missing[g++]=build-essential; fi 13 | 14 | autoconf --version >/dev/null 2>&1 15 | if [ $? != 0 ]; then missing[autoconf]=autoconf; fi 16 | 17 | automake --version >/dev/null 2>&1 18 | if [ $? != 0 ]; then missing[automake]=automake; fi 19 | 20 | pkg-config --version >/dev/null 2>&1 21 | if [ $? != 0 ]; then missing[pkg-config]=pkg-config; fi 22 | 23 | if [ ${#missing[@]} -ne 0 ]; then 24 | echo -------------------------------------------------------------------------------- 25 | echo some software is required for this build and currently missing from your system: 26 | echo 27 | declare -A packages 28 | for name in "${!missing[@]}"; do 29 | echo ' - '$name 30 | packages[${missing[$name]}]=1 31 | done 32 | echo 33 | echo on Ubuntu systems, you may fix this situation by issuing the following commands: 34 | echo 35 | echo ' apt-get update' 36 | echo ' apt-get install '${!packages[@]} 37 | echo 38 | echo aborting 39 | echo -------------------------------------------------------------------------------- 40 | exit 1 41 | fi 42 | 43 | exit 0 44 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | sffmpeg (5.1.2) stable; urgency=high 2 | 3 | * upgrade to ffmpeg 5.1.2 4 | 5 | -- Pierre-Yves Kerembellec Fri, 30 Sep 2022 19:20:26 +0200 6 | 7 | sffmpeg (5.1) stable; urgency=medium 8 | 9 | * upgrade to ffmpeg 5.1 10 | 11 | -- Pierre-Yves Kerembellec Fri, 02 Sep 2022 20:01:35 +0200 12 | 13 | sffmpeg (5.0.1) stable; urgency=medium 14 | 15 | * upgrade to ffmpeg 5.0.1 16 | * also upgrade vendor libraries if needed 17 | 18 | -- Pierre-Yves Kerembellec Tue, 05 Apr 2022 12:16:36 +0200 19 | 20 | sffmpeg (4.4) stable; urgency=medium 21 | 22 | * add zimg library support 23 | * upgrade vendor libraries if needed 24 | 25 | -- Pierre-Yves Kerembellec Fri, 23 Jul 2021 12:52:52 +0200 26 | 27 | sffmpeg (4.4) stable; urgency=medium 28 | 29 | * upgrade to ffmpeg 4.4 30 | 31 | -- Pierre-Yves Kerembellec Thu, 15 Apr 2021 10:42:01 +0200 32 | 33 | sffmpeg (4.3.2) stable; urgency=medium 34 | 35 | * upgrade to ffmpeg 4.3.2 36 | * also upgrade vendor libraries if needed 37 | 38 | -- Pierre-Yves Kerembellec Thu, 18 Mar 2021 09:20:08 +0100 39 | 40 | sffmpeg (4.2.3) stable; urgency=medium 41 | 42 | * upgrade to ffmpeg 4.2.3 43 | * add a missing patch for qsv 44 | 45 | -- Pierre-Yves Kerembellec Tue, 02 Jun 2020 16:42:50 +0200 46 | 47 | sffmpeg (4.2.2p3) stable; urgency=medium 48 | 49 | * add qsv support 50 | 51 | -- Pierre-Yves Kerembellec Fri, 15 May 2020 17:36:02 +0200 52 | 53 | sffmpeg (4.2.2p2) stable; urgency=medium 54 | 55 | * build fully static binaries 56 | 57 | -- Pierre-Yves Kerembellec Tue, 12 May 2020 15:05:25 +0200 58 | 59 | sffmpeg (4.2.2p1) stable; urgency=medium 60 | 61 | * repeat headers at given interval in NUT format 62 | 63 | -- Pierre-Yves Kerembellec Sat, 09 May 2020 21:04:27 +0200 64 | 65 | sffmpeg (4.2.2) stable; urgency=medium 66 | 67 | * upgrade to ffmpeg 4.2.2 68 | * upgrade vendor libraries if needed 69 | 70 | -- Pierre-Yves Kerembellec Wed, 01 Apr 2020 16:29:32 +0200 71 | 72 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 10 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: sffmpeg 2 | Priority: optional 3 | Section: video 4 | Maintainer: Pierre-Yves Kerembellec 5 | Build-Depends: debhelper (>= 9), cmake (>= 3.6), pkg-config, autoconf, automake 6 | Standards-Version: 3.7.2 7 | 8 | Package: sffmpeg 9 | Architecture: any 10 | Description: Static build of the latest FFmpeg binaries 11 | 12 | -------------------------------------------------------------------------------- /debian/install: -------------------------------------------------------------------------------- 1 | build/bin/ffmpeg /usr/local/bin 2 | build/bin/ffprobe /usr/local/bin 3 | build/bin/frmxtract /usr/local/bin 4 | build/bin/gputop /usr/local/bin 5 | build/samples/libcttmetrics.so /usr/local/lib 6 | build/lib/libmfx.so* /usr/local/lib 7 | build/lib/libigdgmm.so* /usr/local/lib 8 | build/lib/libigfxcmrt.so* /usr/local/lib 9 | build/lib/libmfxhw64.so* /usr/local/lib 10 | build/lib/dri/iHD_drv_video.so /usr/local/lib/dri 11 | build/lib/mfx/* /usr/local/lib/mfx 12 | build/share/mfx/plugins.cfg /usr/local/lib/mfx 13 | build/bin/init_rsrc /usr/local/bin 14 | build/bin/ni_rsrc_list /usr/local/bin 15 | build/bin/ni_rsrc_mon /usr/local/bin 16 | build/bin/ni_rsrc_update /usr/local/bin 17 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | %: 4 | dh $@ 5 | 6 | override_dh_auto_clean: 7 | 8 | override_dh_shlibdeps: 9 | 10 | override_dh_strip: 11 | dh_strip --no-automatic-dbgsym 12 | 13 | override_dh_usrlocal: 14 | -------------------------------------------------------------------------------- /patches/ffmpeg/0002-nut-repeat-headers.patch: -------------------------------------------------------------------------------- 1 | --- a/libavformat/nut.h 2 | +++ b/libavformat/nut.h 3 | @@ -108,6 +108,8 @@ 4 | struct AVTreeNode *syncpoints; 5 | int sp_count; 6 | int write_index; 7 | + int headers_interval; 8 | + int64_t last_headers; 9 | int64_t max_pts; 10 | AVRational *max_pts_tb; 11 | #define NUT_BROADCAST 1 // use extended syncpoints 12 | --- a/libavformat/nutenc.c 13 | +++ b/libavformat/nutenc.c 14 | @@ -706,7 +706,7 @@ 15 | } 16 | 17 | nut->last_syncpoint_pos = INT_MIN; 18 | - nut->header_count++; 19 | + // nut->header_count++; 20 | 21 | ret = 0; 22 | fail: 23 | @@ -784,6 +784,7 @@ 24 | nut->time_base_count++; 25 | } 26 | 27 | + nut->last_headers = -1; 28 | nut->max_distance = MAX_DISTANCE; 29 | build_elision_headers(s); 30 | build_frame_code(s); 31 | @@ -1012,6 +1013,20 @@ 32 | data_size += sm_size; 33 | } 34 | 35 | + if (pkt->stream_index == 0 && key_frame) { 36 | + double time_base = av_q2d(s->streams[0]->time_base) * 1000; 37 | + 38 | + if (nut->last_headers < 0) { 39 | + nut->last_headers = pkt->dts; 40 | + } 41 | + if (time_base * (pkt->dts - nut->last_headers) >= nut->headers_interval) { 42 | + av_log(s, AV_LOG_DEBUG, "write headers after %.0f msecs \n", 43 | + time_base * (pkt->dts - nut->last_headers)); 44 | + nut->last_headers = pkt->dts; 45 | + write_headers(s, bc); 46 | + } 47 | + } 48 | + 49 | if (1LL << (20 + 3 * nut->header_count) <= avio_tell(bc)) 50 | write_headers(s, bc); 51 | 52 | @@ -1243,6 +1258,7 @@ 53 | { "none", "Disable syncpoints, low overhead and unseekable", 0, AV_OPT_TYPE_CONST, {.i64 = NUT_PIPE}, INT_MIN, INT_MAX, E, "syncpoints" }, 54 | { "timestamped", "Extend syncpoints with a wallclock timestamp", 0, AV_OPT_TYPE_CONST, {.i64 = NUT_BROADCAST}, INT_MIN, INT_MAX, E, "syncpoints" }, 55 | { "write_index", "Write index", OFFSET(write_index), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, E, }, 56 | + { "headers_interval", "Headers write interval (in ms)", OFFSET(headers_interval), AV_OPT_TYPE_INT, {.i64 = INT_MAX}, 1000, INT_MAX, E, }, 57 | { NULL }, 58 | }; 59 | 60 | -------------------------------------------------------------------------------- /patches/ffmpeg/0003-qsv-winmaxavg.patch: -------------------------------------------------------------------------------- 1 | --- a/libavcodec/qsvenc.c 2 | +++ b/libavcodec/qsvenc.c 3 | @@ -232,6 +232,9 @@ 4 | av_log(avctx, AV_LOG_VERBOSE, 5 | "TargetKbps: %"PRIu16"; BRCParamMultiplier: %"PRIu16"\n", 6 | info->TargetKbps, info->BRCParamMultiplier); 7 | + 8 | + av_log(avctx, AV_LOG_VERBOSE, "WinBRCMaxAvgKbps: %"PRIu16"; WinBRCSize: %"PRIu16"\n", 9 | + co3->WinBRCMaxAvgKbps, co3->WinBRCSize); 10 | } else if (info->RateControlMethod == MFX_RATECONTROL_ICQ || 11 | info->RateControlMethod == MFX_RATECONTROL_LA_ICQ) 12 | av_log(avctx, AV_LOG_VERBOSE, "ICQQuality: %"PRIu16"\n", info->ICQQuality); 13 | @@ -752,6 +755,10 @@ 14 | q->param.mfx.TargetKbps = target_bitrate_kbps / brc_param_multiplier; 15 | q->extco2.LookAheadDepth = q->look_ahead_depth; 16 | q->param.mfx.BRCParamMultiplier = brc_param_multiplier; 17 | + if((q->win_brc_size) && (q->winbrc_maxavg_kbps)) { 18 | + q->extco3.WinBRCMaxAvgKbps = q->winbrc_maxavg_kbps; 19 | + q->extco3.WinBRCSize = q->win_brc_size; 20 | + } 21 | break; 22 | case MFX_RATECONTROL_LA_ICQ: 23 | q->extco2.LookAheadDepth = q->look_ahead_depth; 24 | --- a/libavcodec/qsvenc.h 25 | +++ b/libavcodec/qsvenc.h 26 | @@ -167,6 +167,8 @@ 27 | int look_ahead; 28 | int look_ahead_depth; 29 | int look_ahead_downsampling; 30 | + int winbrc_maxavg_kbps; 31 | + int win_brc_size; 32 | int vcm; 33 | int rdo; 34 | int max_frame_size; 35 | --- a/libavcodec/qsvenc_h264.c 36 | +++ b/libavcodec/qsvenc_h264.c 37 | @@ -127,6 +127,8 @@ 38 | 39 | { "look_ahead", "Use VBR algorithm with look ahead", OFFSET(qsv.look_ahead), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, 40 | { "look_ahead_depth", "Depth of look ahead in number frames", OFFSET(qsv.look_ahead_depth), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, VE }, 41 | + { "winmaxavg", "Specifies the maximum bitrate averaged over a sliding window for MFX_RATECONTROL_LA/MFX_RATECONTROL_LA_HRD", OFFSET(qsv.winbrc_maxavg_kbps), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, 42 | + { "winsize", "Specifies sliding used for MFX_RATECONTROL_LA/MFX_RATECONTROL_LA_HRD window size in frames", OFFSET(qsv.win_brc_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, 43 | { "look_ahead_downsampling", "Downscaling factor for the frames saved for the lookahead analysis", OFFSET(qsv.look_ahead_downsampling), 44 | AV_OPT_TYPE_INT, { .i64 = MFX_LOOKAHEAD_DS_UNKNOWN }, MFX_LOOKAHEAD_DS_UNKNOWN, MFX_LOOKAHEAD_DS_4x, VE, "look_ahead_downsampling" }, 45 | { "unknown" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_LOOKAHEAD_DS_UNKNOWN }, INT_MIN, INT_MAX, VE, "look_ahead_downsampling" }, 46 | -------------------------------------------------------------------------------- /patches/ffmpeg/0004-qsv-force-exit-on-decoding-failure.patch: -------------------------------------------------------------------------------- 1 | --- a/fftools/ffmpeg.c 2 | +++ b/fftools/ffmpeg.c 3 | @@ -2470,6 +2470,13 @@ 4 | } 5 | if (!decode_failed || exit_on_error) 6 | exit_program(1); 7 | + 8 | + // Always quit on qsv decoding error (fallback will take care of retrying in software more) 9 | + if (ist->dec_ctx->codec && strstr(ist->dec_ctx->codec->name, "qsv")) { 10 | + av_log(NULL, AV_LOG_FATAL, "QSV decoding failed, exiting...\n"); 11 | + exit_program(1); 12 | + } 13 | + 14 | break; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /patches/ffmpeg/0005-qsv-force-avc-decoding-level.patch: -------------------------------------------------------------------------------- 1 | --- a/libavcodec/qsvdec.c 2 | +++ b/libavcodec/qsvdec.c 3 | @@ -319,6 +319,9 @@ 4 | return ret; 5 | } 6 | 7 | + if (avctx->codec_id == AV_CODEC_ID_H264) 8 | + param->mfx.CodecLevel = MFX_LEVEL_AVC_52; 9 | + 10 | param->IOPattern = q->iopattern; 11 | param->AsyncDepth = q->async_depth; 12 | param->ExtParam = q->ext_buffers; 13 | -------------------------------------------------------------------------------- /patches/ffmpeg/0006-rotation-fix-metadata.patch: -------------------------------------------------------------------------------- 1 | --- a/fftools/ffmpeg.c 2 | +++ b/fftools/ffmpeg.c 3 | @@ -3243,6 +3243,14 @@ 4 | // copy estimated duration as a hint to the muxer 5 | if (ost->st->duration <= 0 && ist && ist->st->duration > 0) 6 | ost->st->duration = av_rescale_q(ist->st->duration, ist->st->time_base, ost->st->time_base); 7 | + 8 | + // Also set the rotation override when transcoding 9 | + if (ost->rotate_overridden) { 10 | + uint8_t *sd = av_stream_new_side_data(ost->st, AV_PKT_DATA_DISPLAYMATRIX, 11 | + sizeof(int32_t) * 9); 12 | + if (sd) 13 | + av_display_rotation_set((int32_t *)sd, -ost->rotate_override_value); 14 | + } 15 | } else if (ost->stream_copy) { 16 | ret = init_output_stream_streamcopy(ost); 17 | if (ret < 0) 18 | -------------------------------------------------------------------------------- /patches/ffmpeg/0007-qsv-initial-pool-size.patch: -------------------------------------------------------------------------------- 1 | --- a/libavutil/hwcontext_qsv.c 2 | +++ b/libavutil/hwcontext_qsv.c 3 | @@ -515,8 +515,9 @@ 4 | int i, ret = 0; 5 | 6 | if (ctx->initial_pool_size <= 0) { 7 | - av_log(ctx, AV_LOG_ERROR, "QSV requires a fixed frame pool size\n"); 8 | - return AVERROR(EINVAL); 9 | + av_log(ctx, AV_LOG_WARNING, "QSV requires a fixed frame pool size\n"); 10 | + ctx->initial_pool_size = 64; 11 | + // return AVERROR(EINVAL); 12 | } 13 | 14 | s->handle_pairs_internal = av_calloc(ctx->initial_pool_size, 15 | -------------------------------------------------------------------------------- /patches/ffmpeg/0008-restore-flv-muxer-previous-behaviour.patch: -------------------------------------------------------------------------------- 1 | --- a/libavformat/flvenc.c 2 | +++ b/libavformat/flvenc.c 3 | @@ -862,8 +862,8 @@ 4 | } 5 | if (par->codec_id == AV_CODEC_ID_H264 || par->codec_id == AV_CODEC_ID_MPEG4) { 6 | if (pkt->pts == AV_NOPTS_VALUE) { 7 | - av_log(s, AV_LOG_ERROR, "Packet is missing PTS\n"); 8 | - return AVERROR(EINVAL); 9 | + av_log(s, AV_LOG_WARNING, "Packet is missing PTS\n"); 10 | + // return AVERROR(EINVAL); 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /patches/intel-media-sdk/0001-install-prefix.patch: -------------------------------------------------------------------------------- 1 | --- a/builder/FindFunctions.cmake 2 | +++ b/builder/FindFunctions.cmake 3 | @@ -116,7 +116,7 @@ 4 | get_property( PLUGINS_CFG GLOBAL PROPERTY PROP_PLUGINS_CFG ) 5 | file(WRITE ${directory}/plugins.cfg ${PLUGINS_CFG}) 6 | 7 | - install( FILES ${directory}/plugins.cfg DESTINATION ${MFX_PLUGINS_CONF_DIR} ) 8 | + install( FILES ${directory}/plugins.cfg DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/mfx ) 9 | 10 | endfunction() 11 | 12 | --- a/_studio/mfx_lib/CMakeLists.txt 13 | --- b/_studio/mfx_lib/CMakeLists.txt 14 | @@ -225,7 +225,7 @@ 15 | set_target_properties(${mfxlibname} PROPERTIES VERSION ${mfx_version_major}.${mfx_version_minor}) 16 | set_target_properties(${mfxlibname} PROPERTIES SOVERSION ${mfx_version_major}) 17 | 18 | -install(TARGETS ${mfxlibname} LIBRARY DESTINATION ${MFX_MODULES_DIR}) 19 | +install(TARGETS ${mfxlibname} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) 20 | 21 | set( PKG_CONFIG_FNAME "${CMAKE_LIB_DIR}/${CMAKE_BUILD_TYPE}/lib${mfxlibname}.pc") 22 | configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkg-config.pc.cmake" ${PKG_CONFIG_FNAME} @ONLY) 23 | --- a/_studio/hevce_hw/CMakeLists.txt 24 | --- b/_studio/hevce_hw/CMakeLists.txt 25 | @@ -53,4 +53,4 @@ 26 | set( defs "${defs} ${version_defs}" ) 27 | gen_plugins_cfg( "HEVC_Encoder_HW" ${HEVC_Encoder_HW_GUID} ${plugin_name} "02" "HEVC" ) 28 | make_library( ${plugin_name} hw shared ) 29 | -install( TARGETS ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 30 | +install( TARGETS ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 31 | --- a/_studio/hevc_fei/CMakeLists.txt 32 | --- b/_studio/hevc_fei/CMakeLists.txt 33 | @@ -49,5 +49,5 @@ 34 | set( defs "${defs} ${version_defs}" ) 35 | gen_plugins_cfg("HEVC_Encoder_HW" ${HEVC_FEI_Encoder_HW_GUID} ${plugin_name} "02" "HEVC") 36 | make_library( ${plugin_name} hw shared ) 37 | - install( TARGETS ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 38 | + install( TARGETS ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 39 | endif( ) 40 | --- a/_studio/vp9e_hw/CMakeLists.txt 41 | --- b/_studio/vp9e_hw/CMakeLists.txt 42 | @@ -47,4 +47,4 @@ 43 | set( defs "${defs} ${version_defs}" ) 44 | gen_plugins_cfg( "VP9_Encoder_HW" ${VP9_Encoder_HW_GUID} ${plugin_name} "02" "VP9" ) 45 | make_library( ${plugin_name} hw shared ) 46 | -install( TARGETS ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 47 | +install( TARGETS ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 48 | --- a/_studio/mfx_lib/plugin/CMakeLists.txt 49 | --- b/_studio/mfx_lib/plugin/CMakeLists.txt 50 | @@ -195,7 +195,7 @@ 51 | set( defs "${defs} ${version_defs}" ) 52 | gen_plugins_cfg("H264la_Encoder" ${H264LA_ENCODER_GUID} ${plugin_name} "04" "AVC") 53 | make_library( ${plugin_name} hw shared) 54 | - install( TARGETS ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 55 | + install( TARGETS ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 56 | endif() 57 | 58 | ############################################################################### 59 | @@ -234,7 +234,7 @@ 60 | set( defs "${defs} ${version_defs}" ) 61 | gen_plugins_cfg("HEVC_Decoder_HW" ${HEVC_DECODER_HW_GUID} ${plugin_name} "01" "HEVC") 62 | make_library( ${plugin_name} hw shared) 63 | - install( TARGETS ${plugin_name} ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 64 | + install( TARGETS ${plugin_name} ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 65 | endif() 66 | 67 | ############################################################################### 68 | @@ -274,7 +274,7 @@ 69 | set( defs "${defs} ${version_defs}" ) 70 | gen_plugins_cfg( "VP8_Decoder_HW" ${VP8_DECODER_HW_GUID} ${plugin_name} "01" "VP8" ) 71 | make_library( ${plugin_name} hw shared) 72 | - install( TARGETS ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 73 | + install( TARGETS ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 74 | endif() 75 | 76 | # ============================================================================= 77 | @@ -316,5 +316,5 @@ 78 | set( defs "${defs} ${version_defs}" ) 79 | gen_plugins_cfg( "VP9_Decoder_HW" ${VP9_DECODER_HW_GUID} ${plugin_name} "01" "VP9" ) 80 | make_library( ${plugin_name} hw shared) 81 | - install( TARGETS ${plugin_name} LIBRARY DESTINATION ${MFX_PLUGINS_DIR} ) 82 | + install( TARGETS ${plugin_name} LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/mfx ) 83 | endif() 84 | -------------------------------------------------------------------------------- /patches/intel-media-sdk/0002-samples.patch: -------------------------------------------------------------------------------- 1 | --- a/samples/CMakeLists.txt 2 | --- b/samples/CMakeLists.txt 3 | @@ -18,16 +18,4 @@ 4 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 5 | # SOFTWARE. 6 | 7 | -add_subdirectory(sample_common) 8 | -add_subdirectory(sample_decode) 9 | -add_subdirectory(sample_encode) 10 | -add_subdirectory(sample_fei) 11 | -add_subdirectory(sample_hevc_fei) 12 | -add_subdirectory(sample_hevc_fei_abr) 13 | -add_subdirectory(sample_vpp) 14 | -add_subdirectory(sample_multi_transcode) 15 | -add_subdirectory(sample_misc/wayland) 16 | -add_subdirectory(sample_plugins/rotate_cpu) 17 | -add_subdirectory(sample_plugins/rotate_opencl) 18 | -add_subdirectory(sample_plugins/vpp_plugin) 19 | add_subdirectory(metrics_monitor) 20 | --- a/samples/metrics_monitor/CMakeLists.txt 21 | --- b/samples/metrics_monitor/CMakeLists.txt 22 | @@ -27,6 +27,7 @@ 23 | make_executable( metrics_monitor none ) 24 | 25 | install( TARGETS metrics_monitor RUNTIME DESTINATION ${MFX_SAMPLES_INSTALL_BIN_DIR} ) 26 | + install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cttmetrics.h DESTINATION ${MFX_SAMPLES_INSTALL_BIN_DIR} ) 27 | 28 | # test_monitor 29 | 30 | -------------------------------------------------------------------------------- /patches/patch-manager.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ROOT=`dirname $0` 4 | PKG=$1 5 | if [ -d ${ROOT}/${PKG} ] 6 | then 7 | for RUN in `ls ${ROOT}/${PKG}/*.run 2>/dev/null` 8 | do 9 | ${RUN} 10 | done 11 | for PATCH in `ls ${ROOT}/${PKG}/*.patch 2>/dev/null` 12 | do 13 | patch -p 1 < ${PATCH} 14 | done 15 | fi 16 | -------------------------------------------------------------------------------- /patches/xvidcore/0001-no-shared-lib.patch: -------------------------------------------------------------------------------- 1 | --- a/build/generic/Makefile 2 | +++ b/build/generic/Makefile 3 | @@ -149,21 +149,6 @@ 4 | @$(INSTALL) -d $(DESTDIR)$(libdir) 5 | @echo " I: $(libdir)/$(STATIC_LIB)" 6 | @$(INSTALL) -m 644 $(BUILD_DIR)/$(STATIC_LIB) $(DESTDIR)$(libdir)/$(STATIC_LIB) 7 | -ifeq ($(SHARED_EXTENSION),dll) 8 | - @echo " I: $(libdir)/$(SHARED_LIB).a" 9 | - @$(INSTALL) -m 644 $(BUILD_DIR)/$(SHARED_LIB).a $(DESTDIR)$(libdir)/$(SHARED_LIB).a 10 | - @echo " D: $(bindir)" 11 | - @$(INSTALL) -d $(DESTDIR)$(bindir) 12 | - @echo " I: $(bindir)/$(SHARED_LIB)" 13 | - @$(INSTALL) -m 755 $(BUILD_DIR)/$(SHARED_LIB) $(DESTDIR)$(bindir)/$(SHARED_LIB) 14 | -else 15 | - @echo " I: $(libdir)/$(SHARED_LIB)" 16 | - @$(INSTALL) -m 644 $(BUILD_DIR)/$(SHARED_LIB) $(DESTDIR)$(libdir)/$(SHARED_LIB) 17 | - @test -z "$(SO_API_MAJOR_LINK)" || \ 18 | - $(LN_S) $(SHARED_LIB) $(DESTDIR)$(libdir)/$(SO_API_MAJOR_LINK) 19 | - @test -z "$(SO_LINK)" || \ 20 | - $(LN_S) $(SHARED_LIB) $(DESTDIR)$(libdir)/$(SO_LINK) 21 | -endif 22 | 23 | #----------------------------------------------------------------------------- 24 | # Platorm specific file -- dumb rules for people executing make before 25 | -------------------------------------------------------------------------------- /vendor/aom-v3.3.0.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/aom-v3.3.0.tgz -------------------------------------------------------------------------------- /vendor/expat-2.4.8.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/expat-2.4.8.tar.xz -------------------------------------------------------------------------------- /vendor/fdk-aac-2.0.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/fdk-aac-2.0.2.tar.gz -------------------------------------------------------------------------------- /vendor/ffmpeg-5.1.2.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/ffmpeg-5.1.2.tar.bz2 -------------------------------------------------------------------------------- /vendor/fontconfig-2.14.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/fontconfig-2.14.0.tar.gz -------------------------------------------------------------------------------- /vendor/freetype-2.12.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/freetype-2.12.1.tar.gz -------------------------------------------------------------------------------- /vendor/fribidi-1.0.12.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/fribidi-1.0.12.tar.xz -------------------------------------------------------------------------------- /vendor/frmxtract-5.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/frmxtract-5.1.tar.gz -------------------------------------------------------------------------------- /vendor/gperf-3.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/gperf-3.1.tar.gz -------------------------------------------------------------------------------- /vendor/gputop-22.4.4.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/gputop-22.4.4.tar.gz -------------------------------------------------------------------------------- /vendor/harfbuzz-5.1.0.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/harfbuzz-5.1.0.tar.xz -------------------------------------------------------------------------------- /vendor/intel-gmmlib-22.1.7.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/intel-gmmlib-22.1.7.tar.gz -------------------------------------------------------------------------------- /vendor/intel-libva-2.15.0.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/intel-libva-2.15.0.tar.bz2 -------------------------------------------------------------------------------- /vendor/intel-media-driver-22.4.4.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/intel-media-driver-22.4.4.tar.gz -------------------------------------------------------------------------------- /vendor/intel-media-sdk-22.4.4.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/intel-media-sdk-22.4.4.tar.gz -------------------------------------------------------------------------------- /vendor/lame-3.100.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/lame-3.100.tar.gz -------------------------------------------------------------------------------- /vendor/libass-0.16.0.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libass-0.16.0.tar.xz -------------------------------------------------------------------------------- /vendor/libdrm-2.4.100.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libdrm-2.4.100.tar.bz2 -------------------------------------------------------------------------------- /vendor/libogg-1.3.5.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libogg-1.3.5.tar.gz -------------------------------------------------------------------------------- /vendor/libpciaccess-0.16.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libpciaccess-0.16.tar.gz -------------------------------------------------------------------------------- /vendor/libpng-1.6.37.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libpng-1.6.37.tar.gz -------------------------------------------------------------------------------- /vendor/libtheora-1.2.0alpha1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libtheora-1.2.0alpha1.tar.gz -------------------------------------------------------------------------------- /vendor/libtool-2.4.7.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libtool-2.4.7.tar.gz -------------------------------------------------------------------------------- /vendor/libvorbis-1.3.7.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libvorbis-1.3.7.tar.gz -------------------------------------------------------------------------------- /vendor/libvpx-1.12.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libvpx-1.12.0.tar.gz -------------------------------------------------------------------------------- /vendor/libxcoder-4.1.0-rc4.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/libxcoder-4.1.0-rc4.tar.gz -------------------------------------------------------------------------------- /vendor/nasm-2.15.05.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/nasm-2.15.05.tar.gz -------------------------------------------------------------------------------- /vendor/opencore-amr-0.1.6.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/opencore-amr-0.1.6.tar.gz -------------------------------------------------------------------------------- /vendor/openssl-1.1.1q.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/openssl-1.1.1q.tar.gz -------------------------------------------------------------------------------- /vendor/opus-1.3.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/opus-1.3.1.tar.gz -------------------------------------------------------------------------------- /vendor/speex-1.2.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/speex-1.2.1.tar.gz -------------------------------------------------------------------------------- /vendor/srt-v1.5.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/srt-v1.5.0.tar.gz -------------------------------------------------------------------------------- /vendor/x264-20220602-0131-stable.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/x264-20220602-0131-stable.tar.gz -------------------------------------------------------------------------------- /vendor/x265_3.5.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/x265_3.5.tar.gz -------------------------------------------------------------------------------- /vendor/xorg-macros-1.19.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/xorg-macros-1.19.1.tar.gz -------------------------------------------------------------------------------- /vendor/xvidcore-1.3.7.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/xvidcore-1.3.7.tar.gz -------------------------------------------------------------------------------- /vendor/zimg-3.0.4.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/zimg-3.0.4.tar.gz -------------------------------------------------------------------------------- /vendor/zlib-v1.2.12.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyke369/sffmpeg/b1e764b79a991f6e2dc4ddc32d6abbfe902924d5/vendor/zlib-v1.2.12.tar.gz --------------------------------------------------------------------------------