[Cin] Build with external ffmpeg fixed, thanks!
Andrew Randrianasulu
randrianasulu at gmail.com
Mon May 13 03:36:58 CEST 2019
by https://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=commit;h=413642aafb5e96e9c72b53312176838526fbfd97
while I still have some troubles, may be because I run configure and after it initially failed I just rerun make in cinelerra source directory
I was forced to make ffmpeg.git symlink in thirdparty folder, because otherwise mpeg2enc part of cinelerra failed to link correctly. But if I made this symlinc before cloning/patching ffmpeg.git - patching will fail!
Right now diff between my thirdparty/Makefile and official one looks like this:
guest at slax:/dev/shm/tmp/cinelerra-goodguy-20190512/cinelerra-5.1/thirdparty/ffmpeg$ diff -u /dev/shm/Makefile ../Makefile
--- /dev/shm/Makefile 2019-05-13 04:23:58.274067188 +0300
+++ ../Makefile 2019-05-13 04:19:25.410065898 +0300
@@ -46,7 +46,8 @@
ext=$(lastword $(subst ., ,$(1)))
tarball=$(if $($(1).git),$(1).git,$(lastword $(sort $(wildcard src/$(1)*.tar.*))))
unpack=$(call unpack_$(call ext,$(1)),$(1))
-unpack_git=git clone $($(1)) $(1)
+#unpack_git=git clone $($(1)) $(1)
+unpack_git=git clone --depth 1 https://git.ffmpeg.org/$(1)
unpack_gz=tar -xzf $(1)
unpack_bz2=tar -xjf $(1)
unpack_xz=tar -xJf $(1)
@@ -109,7 +110,7 @@
esound.ldflags=" -lm -lstdc++"
fftw.cfg_params= --disable-fortran --enable-shared=no
ffmpeg.cfg_params= \
- --enable-pthreads --enable-gpl --disable-ffplay \
+ --enable-pthreads --enable-gpl --enable-opencl --enable-libdav1d --enable-frei0r --enable-libsnappy --enable-libvidstab --disable-ffplay \
$(if $(WANT_VAAPI),--enable-vaapi,--disable-vaapi) \
$(if $(WANT_VDPAU),--enable-vdpau,--disable-vdpau) \
$(call if_pkg,twolame,--enable-libtwolame) \
@@ -152,7 +153,7 @@
$(call ld_path,libvpx) \
$(call ld_path,x264) \
$(call ld_path,x265) \
- -Wl,--end-group -lm -lstdc++ -pthread \
+ -Wl,--end-group -lm -lstdc++ -pthread -ldav1d -lvidstab \
$(EXTRA_LIBS)" $(FFMPEG_EXTRA_CFG) \
#cmake_config=echo "exec cmake \$$$$@ $(1)" > ./configure; chmod +x ./configure;
-------
as you can see, I enabled libdav1d (0.2.1) installed locally, enabled opencl, frei0r (local), libsnappy (local, for hap encoding), and libvidstab (local).
Liblensfun requred enabling (L)GPL v3 in ffmpeg config, so I omitted it for now.
Full "no" list for ffmpeg's configure looks like this:
guest at slax:/dev/shm/tmp/cinelerra-goodguy-20190512/cinelerra-5.1/thirdparty/ffmpeg$ ./configure --help | grep no
--disable-logging do not log configure debug information
not part of the dynamic linker search path
and binaries will be under GPL [no]
--enable-version3 upgrade (L)GPL to version 3 [no]
--enable-nonfree allow use of nonfree code, the resulting libs
and binaries will be unredistributable [no]
--disable-static do not build static libraries [no]
--enable-shared build shared libraries [no]
--disable-autodetect disable automatically detected external libraries [no]
--disable-programs do not build command line programs
--disable-doc do not build documentation
--disable-htmlpages do not build HTML documentation pages
--disable-manpages do not build man documentation pages
--disable-podpages do not build POD documentation pages
--disable-txtpages do not build text documentation pages
--enable-avresample enable libavresample build (deprecated) [no]
--disable-network disable network support [no]
will become enabled, if all their other dependencies are met and they are not
Also note that the following help text describes the purpose of the libraries
themselves, not all their features will necessarily be usable by FFmpeg.
--enable-avisynth enable reading of AviSynth script files [no]
--enable-chromaprint enable audio fingerprinting with chromaprint [no]
--enable-frei0r enable frei0r video filtering [no]
if openssl, librtmp or gmp is not used [no]
if openssl or librtmp is not used [no]
if openssl, libtls or mbedtls is not used [no]
--enable-jni enable JNI support [no]
--enable-ladspa enable LADSPA audio filtering [no]
--enable-libaom enable AV1 video encoding/decoding via libaom [no]
--enable-libaribb24 enable ARIB text and caption decoding via libaribb24 [no]
needed for subtitles and ass filter [no]
--enable-libbluray enable BluRay reading using libbluray [no]
--enable-libbs2b enable bs2b DSP library [no]
--enable-libcaca enable textual display using libcaca [no]
--enable-libcelt enable CELT decoding via libcelt [no]
--enable-libcdio enable audio CD grabbing with libcdio [no]
--enable-libcodec2 enable codec2 en/decoding using libcodec2 [no]
--enable-libdav1d enable AV1 decoding via libdav1d [no]
--enable-libdavs2 enable AVS2 decoding via libdavs2 [no]
and libraw1394 [no]
--enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
--enable-libflite enable flite (voice synthesis) support via libflite [no]
--enable-libfontconfig enable libfontconfig, useful for drawtext filter [no]
--enable-libfreetype enable libfreetype, needed for drawtext filter [no]
--enable-libfribidi enable libfribidi, improves drawtext filter [no]
--enable-libgme enable Game Music Emu via libgme [no]
--enable-libgsm enable GSM de/encoding via libgsm [no]
--enable-libiec61883 enable iec61883 via libiec61883 [no]
--enable-libilbc enable iLBC de/encoding via libilbc [no]
--enable-libjack enable JACK audio sound server [no]
--enable-libklvanc enable Kernel Labs VANC processing [no]
--enable-libkvazaar enable HEVC encoding via libkvazaar [no]
--enable-liblensfun enable lensfun lens correction [no]
--enable-libmodplug enable ModPlug via libmodplug [no]
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no]
--enable-libopenh264 enable H.264 encoding via OpenH264 [no]
--enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
--enable-libopenmpt enable decoding tracked files via libopenmpt [no]
--enable-libopus enable Opus de/encoding via libopus [no]
--enable-libpulse enable Pulseaudio input via libpulse [no]
--enable-librsvg enable SVG rasterization via librsvg [no]
--enable-librubberband enable rubberband needed for rubberband filter [no]
--enable-librtmp enable RTMP[E] support via librtmp [no]
--enable-libshine enable fixed-point MP3 encoding via libshine [no]
--enable-libsmbclient enable Samba protocol via libsmbclient [no]
--enable-libsnappy enable Snappy compression, needed for hap encoding [no]
--enable-libsoxr enable Include libsoxr resampling [no]
--enable-libspeex enable Speex de/encoding via libspeex [no]
--enable-libsrt enable Haivision SRT protocol via libsrt [no]
--enable-libssh enable SFTP protocol via libssh [no]
for DNN based filters like sr [no]
--enable-libtesseract enable Tesseract, needed for ocr filter [no]
--enable-libtheora enable Theora encoding via libtheora [no]
if openssl, gnutls or mbedtls is not used [no]
--enable-libtwolame enable MP2 encoding via libtwolame [no]
--enable-libv4l2 enable libv4l2/v4l-utils [no]
--enable-libvidstab enable video stabilization using vid.stab [no]
--enable-libvmaf enable vmaf filter via libvmaf [no]
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
native implementation exists [no]
--enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]
--enable-libwavpack enable wavpack encoding via libwavpack [no]
--enable-libwebp enable WebP encoding via libwebp [no]
--enable-libx264 enable H.264 encoding via x264 [no]
--enable-libx265 enable HEVC encoding via x265 [no]
--enable-libxavs enable AVS encoding via xavs [no]
--enable-libxavs2 enable AVS2 encoding via xavs2 [no]
native MPEG-4/Xvid encoder exists [no]
for dash demuxing support [no]
--enable-libzimg enable z.lib, needed for zscale filter [no]
--enable-libzmq enable message passing via libzmq [no]
--enable-libzvbi enable teletext support via libzvbi [no]
--enable-lv2 enable LV2 audio filtering [no]
--enable-decklink enable Blackmagic DeckLink I/O support [no]
if openssl, gnutls or libtls is not used [no]
--enable-mediacodec enable Android MediaCodec support [no]
--enable-libmysofa enable libmysofa, needed for sofalizer filter [no]
--enable-openal enable OpenAL 1.1 capture support [no]
--enable-opencl enable OpenCL processing [no]
--enable-opengl enable OpenGL rendering [no]
if gnutls, libtls or mbedtls is not used [no]
Windows if openssl and gnutls are not used [autodetect]
on OSX if openssl and gnutls are not used [autodetect]
--enable-vapoursynth enable VapourSynth demuxer [no]
--enable-cuda-nvcc enable Nvidia CUDA compiler [no]
--enable-libdrm enable DRM code (Linux) [no]
--enable-libmfx enable Intel MediaSDK (AKA Quick Sync Video) code via libmfx [no]
--enable-libnpp enable Nvidia Performance Primitives-based code [no]
--enable-mmal enable Broadcom Multi-Media Abstraction Layer (Raspberry Pi) via MMAL [no]
--enable-omx enable OpenMAX IL code [no]
--enable-omx-rpi enable OpenMAX IL code for Raspberry Pi [no]
--enable-rkmpp enable Rockchip Media Process Platform code [no]
--disable-amd3dnow disable 3DNow! optimizations
--disable-amd3dnowext disable 3DNow! extended optimizations
Cannot be combined with --target-exec
--samples=PATH location of test samples for FATE, if not set use
--disable-valgrind-backtrace do not print a backtrace under Valgrind
--ignore-tests=TESTS comma-separated list (without "fate-" prefix
in the name) of tests whose result is ignored
------------
so, plenty of things one can enable .....
More information about the Cin
mailing list