View Issue Details

IDProjectCategoryView StatusLast Update
0000303Cinelerra-GG[All Projects] Bugpublic2019-10-06 18:10
ReporterJacekJagosz Assigned Togoodguy  
PrioritynormalSeverityminorReproducibilityalways
Status feedbackResolutionopen 
PlatformOSSolusOS Version
Product Version2019-08 
Target VersionFixed in Version 
Summary0000303: Cant find codec libvpx-vp9 - when using system libvpx
Description

TLDR: Build works with libvpx should be set to "yes", but not with "auto" which is the default in config.ac
I'm the maintainer of Cinelerra-GG for Solus (independent rolling distro). Every time I try to render a video to vp9 I get the following error:
int FFMPEG::open_encoder(const char, const char):
cant find codec libvpx-vp9:/home/jacek/Desktop/test.youtube
Initially I thought it was we used libvpx version 1.7.0, so I delayed updating cin untill we update that first. But even with 1.8.1 the problem persists.
I happened with both FFMPEG 4.1.4 and now with 4.2.1.
Package isn't static. You can find build process here (it uses default Solus macros): https://dev.getsol.us/source/cinelerra-gg/browse/master/package.yml
No additional arguments configuring which libraries are used are passed during the build process.
Does any of you know why that is? Maybe libvpx should be set to "yes" in config.ac by default?

TagsNo tags attached.

Activities

PhyllisSmith

PhyllisSmith

2019-10-06 18:10

manager   ~0002214

Waiting to mark closed to make sure there is no feedback and will close in a couple of days.

PhyllisSmith

PhyllisSmith

2019-09-22 03:27

manager   ~0002166

Last edited: 2019-09-22 03:28

View 2 revisions

Thanks for reporting this as we did not recognize this problem. It led to the discovery that the System/Dynamic builds were not always getting the third-party packages built. Changes have been made to correct this. A GIT checkin with mods to repair this is now complete.

Since we do not have access to a Solus system, if you encounter other problems, be sure to let us know.

PhyllisSmith

PhyllisSmith

2019-09-17 18:37

manager   ~0002160

Olaf: thanks for the additional information "FFmpeg does not include VP9 by default". We now know what the problem is. What is especially interesting is that when we do a static build, ffmpeg DOES include VP9 by default. But the system build does not.

Besides VP9, Opus is not there either which is used in a *.youtube render so there are a bunch more that have to be looked at. A fix is being worked now.

Olaf

Olaf

2019-09-17 10:20

reporter   ~0002158

(Small correction, but please read only afterwards, because that is negligible.
I wrote "FFmpeg does not include VP9 by default", correct would be: "FFmpeg does not include libvpx by default". Without "libvpx" the ability to encode is missing.)

Olaf

Olaf

2019-09-17 09:58

reporter   ~0002157

My system libraries and those under thirdparty happen to have the same version number. (The "problem" has been known to me for a long time, but I don't use VP9, except to create icons for CGG's proxy.) What is important is that FFmpeg does not include VP9 by default:

$ ./configure --help | grep vpx
--enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]

But because FFmpeg builds VP9 when CGG configure is called explicitly with switch "--enable-libvpx", it should be searched at this point:

--enable-libvpx
config.log:1094:BUILD_libvpx='1'
config.log:1184:HAVE_libvpx='yes'
build libvpx (auto):
config.log:1102:BUILD_libvpx='0'
config.log:1192:HAVE_libvpx='yes'

Although "libvpx-dev" (1.8.1*) is installed in the system and "thirdparty/src/libvpx-1.8.1.tar.xz" exists, it is not automatically used. But because CGG relies on the presence of "libvpx" in several places, "build libvpx (yes)" should be used.

PhyllisSmith

PhyllisSmith

2019-09-16 22:11

manager   ~0002156

It is not exactly clear which version is in the system (if any) and which version is in the build (if any).
It looks like the ffmpeg configure probe failed for libvpx and that caused ffmpeg libavcodec.a (static)
to be built without libvpx... which causes the error: "cant find codec libvpx-vp9" when the render
is attempted with youtube format, ... maybe.

Anyhow... you should look at /<path>/cinelerra-5.1/thirdparty/ffmpeg-4.2/ffbuild/config.log
and locate the relevant problem in the libvpx probe. In my build, the config.log for this segment
of config probes seems to begin with:

check_pkg_config libvpx_vp8_decoder vpx >= 1.4.0 vpx/vpx_decoder.h vpx/vp8dx.h vpx_codec_vp8_dx

This log shows the probe results in good detail, so the problem will probably be visible there.

These lines are the requirements from
thirdparty/ffmpeg-4.2/configure libvpx near line 6280

enabled libvpx && { .... }

This tests for the libraries and header files needed to interface to the libvpx system libraries.
I suspect that at least one of the prerequisites fails a config test, probably a missing file.

If problems persist, please send both the config log and the build log.

Olaf

Olaf

2019-09-16 14:12

reporter   ~0002154

This probably also affects the creation of proxies. libvpx-vp9 seems to be the default codec for many extensions.

Issue History

Date Modified Username Field Change
2019-09-16 13:43 JacekJagosz New Issue
2019-09-16 14:12 Olaf Note Added: 0002154
2019-09-16 22:11 PhyllisSmith Note Added: 0002156
2019-09-17 09:58 Olaf Note Added: 0002157
2019-09-17 10:20 Olaf Note Added: 0002158
2019-09-17 18:37 PhyllisSmith Note Added: 0002160
2019-09-17 18:37 PhyllisSmith Assigned To => goodguy
2019-09-17 18:37 PhyllisSmith Status new => assigned
2019-09-22 03:27 PhyllisSmith Note Added: 0002166
2019-09-22 03:28 PhyllisSmith Note Edited: 0002166 View Revisions
2019-10-06 18:10 PhyllisSmith Status assigned => feedback
2019-10-06 18:10 PhyllisSmith Note Added: 0002214