diff options
-rw-r--r-- | .SRCINFO | 13 | ||||
-rw-r--r-- | PKGBUILD | 28 | ||||
-rw-r--r-- | ffmpeg-full-git-add-intel-svt-hevc-docs.patch | 205 |
3 files changed, 242 insertions, 4 deletions
@@ -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 @@ -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 + |