Closed totaam closed 10 years ago
I did some more testing and refined my build process. I discovered libav was unnecessary and actually looks as if it may conflict with ffmpeg.
When dynamically linking against ffmpeg and x264 in the xpra build process, xpra starts, no errors are given, and h264 decoding works.
rpmbuild -ba SPECS/xpra.spec
When built with static linking
rpmbuild -ba SPECS/xpra.spec --define 'static_video_libs 1'
xpra gives the following error (as in the original post) and h264 encoding does not work.
2014-06-11 21:10:20,626 cannot import csc_swscale (swscale colorspace conversion): /usr/lib/python2.6/site-packages/xpra/codecs/csc_swscale/colorspace_converter.so: undefined symbol: av_pix_fmt_desc_get
$ wget http://ftp.videolan.org/pub/x264/snapshots/x264-snapshot-20140610-2245-stable.tar.bz2 $ tar xvf 0140610-2245-stable.tar.bz2 $ cd x264-snapshot-20140610-2245-stable $ ./configure --enable-shared --enable-static $ make -j2 $ make install $ wget http://www.ffmpeg.org/releases/ffmpeg-2.2.3.tar.bz2 $ tar ffmpeg-2.2.3.tar.bz2 $ cd ffmpeg-2.2.3 $ ./configure --enable-shared --enable-static --disable-debug --enable-gpl --enable-runtime-cpudetect --disable-doc --disable-ffplay --disable-ffprobe --disable-ffserver --disable-vaapi --disable-vdpau --disable-everything --enable-decoder=h264 --enable-memalign-hack --disable-symver $ make -j2 $ make install $ wget http://cython.org/release/Cython-0.20.1.tar.gz $ tar xvf Cython-0.20.1.tar.gz in the %build and %install sections I added export PYTHONPATH=/home/pyther/Cython-0.20.1 export PATH=$PATH:/home/pyther/Cython-0.20.1/bin export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
OK, so it looks like I just need to not build it statically linked. I believe that's the case for centos 6.4 onwards?
As you may have already found out, don't mix
libav
andffmpeg
. Onlyffmpeg
is really supported.
Not building statically would work. However, you would need to include a ffmpeg and x264 rpm. How do you feel about that?
$ pwd /usr/lib/python2.6/site-packages/xpra $ find . -name '*.so' -exec ldd {} \; | grep 'not found' libvpx.so.1 => not found libvpx.so.1 => not found libswscale.so.2 => not found libavcodec.so.55 => not found libavutil.so.52 => not found $ LD_LIBRARY_PATH='/usr/local/lib' find . -name '*.so' -exec ldd {} \; | grep 'not found'
I installed x264 and ffmpeg in /usr/local
Sort of unrelated, I would like to help improve the spec file and get xpra to build in a clean mock environment.
Wait, I thought that there were repositories or packages for ffmpeg already somewhere (dag? rpmfusion?)
If not, then we have to use static linking (and fix that).
As for improving the spec file, by all means - that would be great as this is badly needed... (as long as it doesn't break my builtbot too badly..)
I believe that the fix for this problem is r6744. The backport for v0.13.x is in 6745.
This seems to work for me, can I close this ticket?
Built against the latest svn checkout and this error issue is resolved. There are a few other build issues - I think, but I will open up separate tickets.
Issue migrated from trac ticket # 594
component: client | priority: major | resolution: fixed
2014-06-11 19:38:43: pyther created the issue