Notes from moving our app to FFmpeg 9.0 "Lei" Discussion #19
spb-andrey
started this conversation in
Articles
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Spent last week moving our desktop app from 8.1 to 9.0. Bundled shared libs, so Windows, Linux and macOS all at once. A few things that cost me time, in case anyone is about to do the same.
The major sonames all moved: avcodec and avformat from 62 to 63, avutil 60 to 61, avfilter 10 to 12. Obvious enough, except anything else in your process that links FFmpeg dynamically will happily keep loading the old majors until you rebuild that too. For us it was the OpenCV native wrapper. Two FFmpeg revisions live in one process produces the kind of bug you can stare at for a day.
Our .NET bindings are generated from the headers, and the generator fell over on the new LCEVC anonymous union. Ended up collapsing it in a pre-processing step before generation. Not elegant, but it works.
On macOS, av-libs sitting in Frameworks needed a second rpath entry (
@loader_path/../MacOS), otherwise dyld refuses to resolve them from inside the bundle.Also worth grepping your command lines for NVENC options before you ship, 9.0 dropped a few deprecated ones.
The part I did not expect to like: the ONNX Runtime DNN backend with CUDA and DirectML. The limits are real though, NCHW FP32 only, single input models, synchronous inference.
Anyone else moved yet? Curious what bit you.
All reactions