FFMPEG 4.0 broke tvheadend


#1

tvheadend not working anymore after this update:

/usr/bin/tvheadend: error while loading shared libraries: libavfilter.so.6: cannot open shared object file: No such file or directory

There is no libavfilter.so.6 anymore. The new ffmpeg package brings libavfilter.so.7.

└─8# ll libavfilter*
lrwxrwxrwx 1 root root      23 23. Apr 18:44 libavfilter.so -> libavfilter.so.7.16.100
lrwxrwxrwx 1 root root      23 23. Apr 18:44 libavfilter.so.7 -> libavfilter.so.7.16.100
-rwxr-xr-x 1 root root 2917280 23. Apr 18:44 libavfilter.so.7.16.100

[Testing Update] 2018-05-13 - FFMPEG v4.0, ZFS v0.7.9, Gamemode, Usual Updates
#2

You need to rebuild AUR packages that depend on ffmpeg. Since there is a new major version of ffmpeg

And you need to patch tvheadend to make it work with ffmpg 4.0


#3

Rebuild is failing:

src/muxer/muxer_libav.c: In function 'lav_muxer_add_stream':
src/muxer/muxer_libav.c:177:17: error: 'CODEC_FLAG_GLOBAL_HEADER' undeclared (first use in this function); did you mean 'AV_CODEC_FLAG_GLOBAL_HEADER'?
     c->flags |= CODEC_FLAG_GLOBAL_HEADER;
                 ^~~~~~~~~~~~~~~~~~~~~~~~
                 AV_CODEC_FLAG_GLOBAL_HEADER
src/muxer/muxer_libav.c:177:17: note: each undeclared identifier is reported only once for each function it appears in
make: *** [Makefile:638: /data/datatmp/pkgtmp/tvheadend/src/tvheadend-4.2.6/build.linux/src/muxer/muxer_libav.o] Error 1
==> ERROR: A failure occurred in build().
    Aborting...
:: Unable to build tvheadend - makepkg exited with code: 2

#4

First comment on the AUR site, you need to pacht it.

https://raw.githubusercontent.com/rpmfusion/tvheadend/master/tvheadend-4.2.5-ffmpeg_3.5.patch


#5

That did the trick. With the patch instructions form the arch wiki (https://wiki.archlinux.org/index.php/Patching_packages) I got it working. Thanks!

PS
Just a minute ago a new tvheadend-4.2.6-4 package was provided which does not need the patch anymore.


#6

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.