summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Bermond2019-05-31 23:47:36 +0000
committerDaniel Bermond2019-05-31 23:47:36 +0000
commit965cce06a776bf3045b2b94acc7bbb038983f2c6 (patch)
treee8f1a11058b6fa0f57769bc747a3c643471c7aee
parent7df4cd31646bb0d60fcb807b3de9f5d150541727 (diff)
downloadaur-965cce06a776bf3045b2b94acc7bbb038983f2c6.tar.gz
Add intel-svt support for hevc, av1 and vp9
-rw-r--r--.SRCINFO13
-rw-r--r--PKGBUILD28
-rw-r--r--ffmpeg-full-git-add-intel-svt-hevc-docs.patch205
3 files changed, 242 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2fce0bb1559b..48c284627267 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = ffmpeg-full-git
pkgdesc = Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac; git version)
- pkgver = 4.2.r93888.gb401a4ab8a
+ pkgver = 4.2.r93953.g5a6fc87443
pkgrel = 1
url = https://www.ffmpeg.org/
arch = i686
@@ -99,6 +99,9 @@ pkgbase = ffmpeg-full-git
depends = openh264
depends = libopenmpt-svn
depends = shine
+ depends = intel-svt-hevc
+ depends = intel-svt-av1
+ depends = svt-vp9-git
depends = vo-amrwbenc
depends = xavs
depends = xavs2
@@ -119,8 +122,16 @@ pkgbase = ffmpeg-full-git
provides = ffmpeg-git
conflicts = ffmpeg
source = git+https://git.ffmpeg.org/ffmpeg.git
+ source = ffmpeg-full-git-add-intel-svt-hevc.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.3.0/ffmpeg_plugin/0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch
+ source = ffmpeg-full-git-add-intel-svt-hevc-docs.patch
+ source = ffmpeg-full-git-add-intel-svt-av1.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-AV1/v0.5.0/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1-with-svt-hevc.patch
+ source = ffmpeg-full-git-add-intel-svt-vp9.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-VP9/9c96f478e4a281f6019c8b0de39c2b7caba56371/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-vp9-with-svt-hevc-av1.patch
source = LICENSE
sha256sums = SKIP
+ sha256sums = cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d
+ sha256sums = d6f29cbe57cba0fdfcb97111aa089154509db3a7bfdfa7f978692b68652e6fb5
+ sha256sums = 490952c315404ecaa633d55cdb3456d1e518180c8375f374f3fb85d226fff476
+ sha256sums = 7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7
sha256sums = 04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36
depends_x86_64 = cuda
depends_x86_64 = intel-media-sdk
diff --git a/PKGBUILD b/PKGBUILD
index 7fa7f0e4b90a..5a6370816519 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=ffmpeg-full-git
_srcname=ffmpeg
-pkgver=4.2.r93888.gb401a4ab8a
+pkgver=4.2.r93953.g5a6fc87443
pkgrel=1
pkgdesc='Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac; git version)'
arch=('i686' 'x86_64')
@@ -23,8 +23,9 @@ depends=(
'zlib' 'libomxil-bellagio' 'libva' 'libdrm' 'libvdpau'
# AUR:
'chromaprint-fftw' 'dav1d-git' 'codec2' 'davs2' 'flite1-patched' 'libilbc'
- 'libklvanc-git' 'kvazaar' 'openh264' 'libopenmpt-svn' 'shine' 'vo-amrwbenc'
- 'xavs' 'xavs2' 'libmysofa' 'pocketsphinx' 'rockchip-mpp'
+ 'libklvanc-git' 'kvazaar' 'openh264' 'libopenmpt-svn' 'shine' 'intel-svt-hevc'
+ 'intel-svt-av1' 'svt-vp9-git' 'vo-amrwbenc' 'xavs' 'xavs2' 'libmysofa'
+ 'pocketsphinx' 'rockchip-mpp'
)
depends_x86_64=(
# official repositories:
@@ -47,10 +48,28 @@ provides=('libavcodec.so' 'libavdevice.so' 'libavfilter.so' 'libavformat.so'
'libswresample.so' 'ffmpeg' 'ffmpeg-full' 'ffmpeg-git')
conflicts=('ffmpeg')
source=('git+https://git.ffmpeg.org/ffmpeg.git'
+ 'ffmpeg-full-git-add-intel-svt-hevc.patch'::'https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.3.0/ffmpeg_plugin/0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch'
+ 'ffmpeg-full-git-add-intel-svt-hevc-docs.patch'
+ 'ffmpeg-full-git-add-intel-svt-av1.patch'::'https://raw.githubusercontent.com/OpenVisualCloud/SVT-AV1/v0.5.0/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1-with-svt-hevc.patch'
+ 'ffmpeg-full-git-add-intel-svt-vp9.patch'::'https://raw.githubusercontent.com/OpenVisualCloud/SVT-VP9/9c96f478e4a281f6019c8b0de39c2b7caba56371/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-vp9-with-svt-hevc-av1.patch'
'LICENSE')
sha256sums=('SKIP'
+ 'cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d'
+ 'd6f29cbe57cba0fdfcb97111aa089154509db3a7bfdfa7f978692b68652e6fb5'
+ '490952c315404ecaa633d55cdb3456d1e518180c8375f374f3fb85d226fff476'
+ '7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7'
'04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36')
+prepare() {
+ cd "$_srcname"
+
+ # add intel-svt support for hevc, av1 and vp9
+ patch -Np1 -i "${srcdir}/ffmpeg-full-git-add-intel-svt-hevc.patch"
+ patch -Np1 -i "${srcdir}/ffmpeg-full-git-add-intel-svt-hevc-docs.patch"
+ patch -Np1 -i "${srcdir}/ffmpeg-full-git-add-intel-svt-av1.patch"
+ patch -Np1 -i "${srcdir}/ffmpeg-full-git-add-intel-svt-vp9.patch"
+}
+
pkgver() {
cd "$_srcname"
@@ -166,6 +185,9 @@ build() {
--enable-libspeex \
--enable-libsrt \
--enable-libssh \
+ --enable-libsvthevc \
+ --enable-libsvtav1 \
+ --enable-libsvtvp9 \
--enable-libtensorflow \
--enable-libtesseract \
--enable-libtheora \
diff --git a/ffmpeg-full-git-add-intel-svt-hevc-docs.patch b/ffmpeg-full-git-add-intel-svt-hevc-docs.patch
new file mode 100644
index 000000000000..1ed8a785ddb8
--- /dev/null
+++ b/ffmpeg-full-git-add-intel-svt-hevc-docs.patch
@@ -0,0 +1,205 @@
+From 0bb8d7cd4131b1c6d29d57c709ce6f3a6b246031 Mon Sep 17 00:00:00 2001
+From: Jun Zhao <mypopydev@gmail.com>
+Date: Sat, 8 Dec 2018 15:43:05 +0800
+Subject: [PATCH 2/2] doc: Add libsvt_hevc encoder docs
+
+Add docs for libsvt_hevc encoder in encoders.texi and general.texi
+
+Signed-off-by: Jun Zhao <jun.zhao@intel.com>
+Signed-off-by: Huang, Zhengxu <zhengxu.huang@intel.com>
+Signed-off-by: hassene <hassene.tmar@intel.com>
+---
+ doc/encoders.texi | 157 ++++++++++++++++++++++++++++++++++++++++++++++
+ doc/general.texi | 8 +++
+ 2 files changed, 165 insertions(+)
+
+diff --git a/doc/encoders.texi b/doc/encoders.texi
+index 899faac49b..0a19596299 100644
+--- a/doc/encoders.texi
++++ b/doc/encoders.texi
+@@ -1457,6 +1457,163 @@ Set maximum NAL size in bytes.
+ Allow skipping frames to hit the target bitrate if set to 1.
+ @end table
+
++@section libsvt_hevc
++
++Scalable Video Technology for HEVC encoder (SVT-HEVC encoder) wrapper.
++
++This encoder requires the presence of the headers and
++library during configuration. You need to explicitly configure the
++build with @code{--enable-libsvthevc}. The library is detected using
++@command{pkg-config}.
++
++For more information about the library see
++@url{https://github.com/intel/SVT-HEVC.git}.
++
++@subsection Options
++
++The following FFmpeg global options affect the configurations of the
++libsvt_hevc encoder.
++
++@table @option
++@item b (@emph{bitrate})
++Set the bitrate (as a number of bits per second). Default is 7M.
++
++@item refs (@emph{ref})
++Number of reference frames each P-frame can use. The range is from @var{0-16}.
++Default is 0(disabled).
++
++@item g / @option{gop_size}
++Set the GOP size. Default is 64.
++
++@item flags +cgop
++Enable closed GOP.
++
++@item qmin (@emph{min-q})
++Defaults 10
++
++@item qmax (@emph{max-q})
++Defaults 48
++
++Set minimum/maximum quantisation values. Valid range is from 0 to 51
++(Only used when bit rate control mode @option{rc} is set to 0(cqp) mode.
++Has to be qmax > = qmin).
++
++@item profile (@emph{profile})
++Set profile restrictions. Can assume one of the following possible values:
++
++Default is 2 (main10).
++
++@table @samp
++@item main
++main profile
++@item main10
++main10 profile
++@end table
++
++@item level
++
++@option{profile} sets the value of @emph{profile_idc} and the @emph{constraint_set*_flag}s.
++@option{level} sets the value of @emph{level_idc}.
++
++@end table
++
++The encoder also has its own specific options:
++
++@table @option
++@item vui
++Enables or disables the vui structure in the HEVC elementary
++bitstream. 0 = Off, 1 = On. Default is 0 (Off).
++
++@item aud (@emph{aud})
++Enable use of access unit delimiters when set to 1. Default is 0 (Off).
++
++@item hielevel
++Set hierarchical levels. Can assume one of the following possible values:
++
++Default is 3 (4level).
++
++@table @samp
++@item flat
++none hierarchy level
++@item 2level
++2-level hierarchy
++@item 3level
++3-level hierarchy
++@item 4level
++4-level hierarchy
++@end table
++
++@item la_depth
++Set look-ahead depth, depending on bit rate control mode @option{rc}, when
++bit rate control mode is set to vbr it's best to set this parameter to be
++equal to the intra period value (such is the default set by the encoder),
++when cqp is chosen, then a look ahead is recommended. The range is from @var{0-256}.
++
++@item intra_ref_type
++Set intra refesh type. Can assume one of the following possible values:
++
++Default is 2 (idr).
++
++@table @samp
++@item cra
++open group of pictures
++@item idr
++closed group of pictures
++@end table
++
++@item preset
++A preset defining the quality vs density tradeoff point that the
++encoding is to be performed at.(e.g. 0 is the highest quality mode,
++12 is the highest density mode). The range is from @var{0-12}. Default is 9.
++
++@item tier
++Set @emph{general_tier_flag}. This may affect the level chosen for the stream
++if it is not explicitly specified. Can assume one of the following possible values:
++
++Default is 1 (main).
++
++@table @samp
++@item main
++main tier
++@item high
++high tier
++@end table
++
++@item rc
++Set bit rate control mode. Can assume one of the following possible values:
++
++Default is 0 (cqp).
++
++@table @samp
++@item cqp
++Constant QP (CQP) mode
++@item vbr
++Variable Bit Rate (VBR) mode
++@end table
++
++@item qp
++Initial quantization parameter for the intra pictures used when
++@option{rc} is cqp mode. The range is from @var{0-51}. Default is 32.
++
++@item sc_detection
++Enables or disables the scene change detection algorithm. Default is 0 (disable).
++
++@item tune
++Set quality tuning mode. Can assume one of the following possible values:
++
++Default is 1 (objective).
++
++@table @samp
++@item subjective
++Subjective quality mode
++@item objective
++Objective quality mode for PSNR / SSIM / VMAF benchmarking
++@end table
++
++@item bl_mode
++Enables or disables Random Access Prediction. Default is 0 (disable).
++@end table
++
+ @section libtheora
+
+ libtheora Theora encoder wrapper.
+diff --git a/doc/general.texi b/doc/general.texi
+index 2b015f143a..070997aa6f 100644
+--- a/doc/general.texi
++++ b/doc/general.texi
+@@ -280,6 +280,14 @@ The dispatcher is open source and can be downloaded from
+ with the @code{--enable-libmfx} option and @code{pkg-config} needs to be able to
+ locate the dispatcher's @code{.pc} files.
+
++@section Scalable Video Technology for HEVC
++
++FFmpeg can make use of the SVT-HEVC library for HEVC encoding.
++
++Go to @url{https://github.com/intel/SVT-HEVC.git} and follow the instructions
++for installing the library. Pass @code{--enable-libsvthevc} to configure to
++enable it.
++
+ @section Kvazaar
+
+ FFmpeg can make use of the Kvazaar library for HEVC encoding.
+--
+2.17.1
+