-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update ffmpeg to 4.1 and all dependencies to latest release, including build fixes #3575
Conversation
@ymartin59 @cytec As discussed, here my current WIP. I've started developing against I've not been able to cross-compile all supported packages yet: As usual, I wanted to use travis to build across platforms (my Virtualbox took about 4 hours to build one platform). However, all builds fail early as our docker image does not yet contain I've checked Lastly, I've not yet tackled the VAAPI support issue and am not sure I can do it in the proposed way (see #3222 for the detailed discussion). Does one of you want to take a shot at that one or should we postpone this to a later update in light of an ealier republication (see #3568)? |
To speed up your work, you may be interested by #3171 (documented in wiki) |
My opinion is to let VAAPI for later... except I find courage to investigate in my xpenology VM. |
I have an issue building for
|
I may have found explanation - prefix is incorrect
|
Thanks, @ymartin59! I've found another issue, too:
|
@m4tt075 There is chance projects have move to C++ 11 and recent language/compile versions... so we will have to discard DSM 5 from our targets... |
@ymartin59 I agree. It is mostly old toolchains giving us trouble. For this update, I'd try to shoot for broadest possible 6.x and 5.2 platform support. With this the vast majority of users would have a reasonably recent and license-compatible I think I fixed all compilation issues in the meantime. Once more test, and I'll push the fixes, probably later today... |
@m4tt075 I have just added commit with VAAPI and minor fixes for package PLIST. Hope this does not conflict with your work in progress. |
For the record, here is a copy of ffmpeg "configure" output where all supported components are listed - more readable that
@m4tt075 Probably it may be a good idea no longer build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PLIST fixes are fine, but you introduce cross/mpfr/Makefile
without referencing it anywhere. On purpose or some relic that should not be there?
Just the
I've tested the fixes here: https://travis-ci.org/m4tt075/spksrc/builds/478878584 I've looked into
@lLogan I remember that you had further comments on our |
@hgy59 Your contribution to include VAAPI into FFmpeg is not included in v4.1 package version. Have you got any hint how to confirm this support is effectively in use when processing media file? |
spk/ffmpeg/Makefile
Outdated
.PHONY: ffmpeg_custom_pre_copy | ||
ffmpeg_custom_pre_copy: $(INSTALL_PLIST) | ||
# Remove libhdr10plus reference from PLIST if it isn't available on the platform (e.g. 88f6281) | ||
test -f $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/libhdr10plus.so || sed -i -e '/:lib\/libhdr10plus.so/d' $(INSTALL_PLIST) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool! Never noticed this option! Yes, will apply this as well.
Just building again, on 1 core in my VM. The waiting time is killing me... ;-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ymartin59 I'm struggeling to implement your request. According to my testing, on shell level, the following command (all in one row) should work within the pipe:
PLIST_TRANSFORM = if [ -f $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/libhdr10plus.so ] ; then sed -e '/lib\/libhdr10plus.so/d' ; else cat ; fi
However, if I insert this expression into the Makefile variable, it doesn't work. It might be an escaping issue, but all of my attempts failed so far. Can you advise, please?
Minor configure comments:
Other stuff:
|
@lLogan Many thanks for your comments and suggestions! Very helpful! I've implemented all of them in terms of separate commits. Unfortunately ARM platforms are not supported by @ymartin59 @cytec Additionally, I've removed the Would you take another look, please, and let me know whether you agree with the current shape of the package and the applied changes so far? Any further change requests (and/or advice how to employ |
Regarding 015c02f: you may get a few users complaining about the lack of Theora encoding (and probably even fewer complaints about the other dropped external libraries in a401113). For Theora, I usually tell users that VP9/VP8 (encoders libvpx-vp9/libvpx) are valid, modern replacements and should be supported by most browsers that support Theora. Of course they can always compile it themselves if it is a requirement. |
Understood. Thanks a lot, @lLogan I'm not aware of using any of these niche formats recently, but I'm definitely not a power user in terms of codecs nor any kind of authority of what our users need. I appreciated your "slimming down" approach a lot because it reduces (potentially) unnecessary complexity, build size, build time and (for the future) maintenance efforts. On the other hand, each of those commits can be reverted easily again. I know the "all-in" package builds and the "fully-slimmed-down" package builds. It is just a matter of picking and chosing and squashing the commits we want at the end. @ymartin59 and @cytec have way more experience with our community, |
@lLogan Thanks. May you please provide some hints about how to check ffmpeg binary properly uses VAAPI on Intel platform? |
@ymartin59 Unfortunately I've never used VAAPI and I don't have the hardware to try it, so I don'y really know anything about it. The wiki has some info: https://trac.ffmpeg.org/wiki/HWAccelIntro |
@ymartin59 Would be great if you or @cytec could test HW-acceleration really. I have failed to activate direct rendering for my XPE6.1 VirtualBox image. Not sure it is because of my system or the XPE image, but I don't get any |
@ymartin59 Just saw the |
@m4tt075 Just as a reminder. I am preparing chromaprint and comskip updates against ffmpeg... My idea is to keep only 3 commits with work of each contributors separated (you, me and hgy59). No urgency until other dependent packages are tested too. |
@ymartin59 I've been working on separating the |
Understood. I missed cherry-picking #3595 when I reworked |
Just let me know if you want me to drop the fixups and force-push again. |
- Disable libfdk-acc by default - Remove openssl dependencies - Fix licensing information - [ffmpeg] Update gnutls cross-package to 3.6.4 - [gnutls] Add missing toolchain-triplets to gmp cross package - [gnutls] Update nettle cross-package to 3.4 and fix x86 compilation issues - [gnutls] Update libtasn1 cross-package to 4.13 - [gnutls] Update libunistring cross-package to 0.9.10 - [ffmpeg] Update ffmpeg to version 4.1 (latest release) - [freetype] Update libpng cross package to 1.6.36 - [ffmpeg] Update fribidi cross package to 1.0.5 and remove obsolete patch - [libass] Update fontconfig cross package to 2.13.1 and add dependency to util-linux cross package - [libass] Update expat cross package to 2.2.6 - [libass] Update util-linux cross package to 2.33.1 - [libbluray] Update libxml2 cross package to 2.9.9 - [ffmpeg] Update libvorbis cross package to 1.3.6 - [openjpeg] Update tiff cross package to 4.0.10 - [ffmpeg] Update opus cross package to 1.3 - [ffmpeg] Update soxr cross package to 0.1.3 - [ffmpeg] Update x264 cross package to 20190109-2245-stable - [ffmpeg] Update native nasm package to 2.14.02 and include pure_func fix - [ffmpeg] Update x265 cross package to 2.9, fix HDR10Plus support and reintegrate ppc architecture - [ffmpeg] Replace yasm by nasm for building - [ffmpeg] Remove --enable-optimizations --enable-pthreads options as automatically detected - [ffmpeg] Remove librtmp dependency and cross-package, using built-in implementation - [ffmpeg] Remove libtheora dependency from build, as niche format - [ffmpeg] Remove opencore-amr, vo-amrwbenc and openjpeg dependencies and cross-packages as niche formats - [ffmpeg] Remove superfluous documentation configuration options - [ffmpeg] Update fdk-aac cross package to 2.0.0 (for DIY-builders only)
- vaapi is for intel x64 archs only - update libva from 2.0.0 to 2.1.0 - add libva-utils (vainfo) and intel-vaapi-driver for ffmpeg with vaapi
Simplicity comes with framework improvements Depends on SynoCommunity#3592 and SynoCommunity#3595
Minor issue I saw
Fixed by installing doc2manx. |
@stefaang Thanks. Tools are available in Docker image, but I agree to disable documentation generation, what we usually do. |
FFmpeg 4.1.1 has been released. As with all point releases there are no backwards incompatible changes, so it should be a drop-in replacement for 4.1. Changelog. |
@lLogan After all we've been through? I'm afraid we need (and hopefully deserve) an |
I just wanted to mention it in case this was still open/being worked on. I couldn't tell what the current status is. Thanks for all of your work and dealing with the license issue. |
@lLogan It is alright, really! It has been a long journey for us. We've just merged But on a very serious note: Thank YOU for your very kind notice of where we went wrong AND for leading the way on how to resolve things. |
Will the ffmpeg 4.1 work with latest version of DS video, or is there still trouble with playback. |
We did nothing special for DS video... I have not tested neither myself. |
Just FYI, VAAPI doesn't work in 4.1 on my intel a based NAS. 4.0 branch doesn't have this issue. There's another issue opened #3688 tracking all this. |
Motivation
ffmpeg
is a core package for SynoCommunity, as standalone package and as key dependency for theChromaprint
,Tvheadend
andComskip
packages. Theffmpeg
package and external libraries (e.g. x264 and x265) are under continuous development and regularly improved. This PR bumpsffmpeg
as well as all dependencies to latest release.PR Description
ffmpeg
to 4.1 and all dependencies to latest releasex265
x265-2.9
x64
Intel platformsLinked issues: #2952, #3413, #3206, #3222
Checklist
all-supported
completed successfully