ffbinaries / ffbinaries-prebuilt

Prebuilt binaries for ffbinaries.com
https://ffbinaries.com
54 stars 10 forks source link

ffmpeg nightlies #2

Open kevinGodell opened 6 years ago

kevinGodell commented 6 years ago

Is it possible to add a nightly build installation option? I know you can't waste your time downloading and uploading new versions each day, but it would be helpful if you could maybe get weeklies(nightlies each week)? I just ran into a situation where the current release of ffmpeg on windows is unable to open https urls(gives a tls error). I just tried the windows 64 ffmpeg nightly from zeranoe and it was working good. I am not sure if it is a bug, or just that they enable more features on the nightly than on the release build. It seemed that there were twice as many features enabled when counting the build flags.

The link to the latest uses a version that is similar to the nightly as the source, while keeping the url static for easy downloading: https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-latest-win64-static.zip

The file listed as nightly and the one listed as latest both work with no tls error. All other numbered builds fail, including the most recent 3.4.2.

vot commented 6 years ago

Hey @kevinGodell,

Thanks for another good suggestion :)

It seems that there have been plenty of issues around TLS lately (including one where GitHub disabled TLS1.1 at the end of February). I'm guessing the newer versions would have been compiled with support for TLS 1.2 and with more websites dropping support for TLS 1.1 it seems like it could be the potential source of problems.

I'll try to get around to this next week - potentially as a separate "nightly" or "git" version, with the "latest" version still pointing to the stable release (currently 3.4). Hopefully that would be a sufficient and reasonable method of versioning.

In the long term I'd like to write some proper build system that would allow me to compile multiple versions in a more consistent fashion (ideally I'd like to support versions from 2.x all the way to nightlies, made available both with and without non-free codecs).

This is still a long way off since I haven't even started looking into this but I'd like to have proper build scripts available through ffbinaries-prebuilt repo. It will be a pretty massive effort given the necessary set up of cross-compiled binaries, git repo synchronisation. In either case that's the direction I'd like to take with this project but I may need a fair bit of help with setting up the build pipeline for that :)

kevinGodell commented 6 years ago

Last week I tried running an ffmpeg build on my windows 7 machine using media autobuild suite. Took about 3 hours for the first build since it had to download all of the libs. Of course I had the settings wrong the first time and my build did not have the libs built inside ffmpeg. The 2nd attempt went much faster since it already had the extra files needed.

I had thought about trying to make something to run on appveyor for the build process, but did not have any time to look into that.

vot commented 6 years ago

Seems like we're on the same page. Thanks for the link to the autobuild suite - will certainly come in useful when the time comes for the proper implementation of this. I've looked into this in the past but it's quite a task to orchestrate it well.

I'd like to put together a sensible set of scripts that would ideally run on Circle CI (currently my CI of choice for the open source stuff - in the end of the day it doesn't really matter). Getting something that builds ffmpeg for all supported platforms in a consistent way is definitely the goal here :)

kevinGodell commented 6 years ago

What made you switch to Circle Ci? I saw that you did that about 6 months ago. I still use travis for my main mac and linux testing.

Also, just recently appveyor started doing linux build in addition to windows. I signed up as a test user, but was not able to make a config file to build exactly how I wanted because I wanted to target multiple versions of nodejs on windows AND linux. If you are not doing overly complicated testing, it might be an option for you.

vot commented 6 years ago

Hi @kevinGodell,

I just published binaries for ffmpeg v4.0.1 yesterday. While this doesn't address the issue long term (I would indeed like to be able to build and upload nightlies automatically) it might be reasonable to switch to the newer build in your case :)

openaudible commented 4 years ago

Hi @vot Any chance you can dockerize your build system so anyone can build a nightly build?

I bumped into a bug in LAME and had to build the windows 64 from scratch. (broken in 4.2.1)

I used https://github.com/rdp/ffmpeg-windows-build-helpers and it was pretty painless to build from docker.. Just took about 30 minutes to run and got nice copies of ffmpeg, ffplay, & ffprobe.exe.

Assuming nothing weird required to build your project, it should be possible.. (Unless you wanted to code sign something on Mac.. which is a nightmare without a Mac and XCode etc.)

Anyway, thanks for your efforts!

vot commented 4 years ago

Hey @openaudible,

Thanks for your interest in ffbinaries - certainly nice to see your project pop up here :)

Docker builds with CircleCI integration are essentially on top of my wishlist for ffbinaries.

I've seen the repo you mentioned in the past when I researched this a bit. The major problem for me has always been time. Ideally I'd like to have a single script/Docker image which can compile the full ffmpeg suite for all supported platforms.

I would really like to have a build set up in Circle CI which produces the binary artifacts to be used in this project. That would bring us one step closer to fully automated nightly builds. It's something I could certainly use some help with.

Let me know if you could offer some help, I never seem to find the time to implement this (at the moment adding a new version of binaries manually is a 15 minute job but I know there is demand for this feature too). I had a few attempts at it but nothing that actually worked well ever came out of it.