ffmpeg problem

Hi,
I am trying to use ffmpeg 2.3 running on OpenSuse 13.1 64 bit.
When trying to use it for seemingly anything, I get the error message

ffmpeg: relocation error: /usr/lib64/libavformat.so.55: symbol avpriv_open, version LIBAVUTIL_52 not defined in file libavutil.so.52 with link time reference

The full output from the call was

vlad@linux-0icz:~/Downloads> ffmpeg -i 00001.m2ts x.mov
ffmpeg version 2.3 Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 20 2014 17:19:38 with gcc 4.8 (SUSE Linux)
  configuration: --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --shlibdir=/usr/lib64 --disable-stripping --enable-pthreads --enable-shared --enable-avfilter --disable-static --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libx264 --enable-nonfree --enable-postproc --enable-shared --enable-libdc1394 --enable-libtheora --enable-libschroedinger --enable-libvpx --enable-gpl --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-x11grab
  WARNING: library configuration mismatch
  avutil      configuration: --enable-shared --disable-static --disable-doc --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --disable-stripping --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g'
  swscale     configuration: --enable-shared --disable-static --disable-doc --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --disable-stripping --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g'
  libavutil      52. 92.100 / 52. 38.100
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 48.100 / 55. 48.100
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.100 /  4. 11.100
  libswscale      2.  6.100 /  2.  3.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
ffmpeg: relocation error: /usr/lib64/libavformat.so.55: symbol avpriv_open, version LIBAVUTIL_52 not defined in file libavutil.so.52 with link time reference
vlad@linux-0icz:~/Downloads> 

ffmpeg was installed through zypper, so I am wondering whether …
(a) there is something wrong with my invocation
(b) there is something wrong with the loaded libraries
(c) there is a problem in ffmpeg’s dependency expectations.

Any advice on how to proceed from here will be greatly appreciated.

Please post the results of zypper lr -d , encapsulate the result in # (code) tags here in the forums like this;

Woof woof

My guess is you have ffmpeg and libav files mixed from Packman - you need to make sure all the package versions are from there.

That was supposed to be

woof woof

of course :slight_smile:

Thank you for your reply.
Here is the zypper output:

linux-0icz:/home/vlad # zypper lr -d
#  | Alias                     | Name                               | Enabled | Refresh | Priority | Type   | URI                                                             | Service
---+---------------------------+------------------------------------+---------+---------+----------+--------+-----------------------------------------------------------------+--------
 1 | Packman Repository        | Packman Repository                 | Yes     | Yes     |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_13.1/        |        
 2 | SuSE                      | SuSE                               | Yes     | Yes     |   99     | rpm-md | http://download.videolan.org/SuSE/13.1/                         |        
 3 | libdvdcss repository      | libdvdcss repository               | Yes     | Yes     |   99     | rpm-md | http://opensuse-guide.org/repo/13.1/                            |        
 4 | repo-debug                | openSUSE-13.1-Debug                | No      | Yes     |   99     | NONE   | http://download.opensuse.org/debug/distribution/13.1/repo/oss/  |                                                                                                                                  
 5 | repo-debug-update         | openSUSE-13.1-Update-Debug         | No      | Yes     |   99     | NONE   | http://download.opensuse.org/debug/update/13.1/                 |                                                                                                                                  
 6 | repo-debug-update-non-oss | openSUSE-13.1-Update-Debug-Non-Oss | No      | Yes     |   99     | NONE   | http://download.opensuse.org/debug/update/13.1-non-oss/         |                                                                                                                                  
 7 | repo-non-oss              | openSUSE-13.1-Non-Oss              | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.1/repo/non-oss/    |        
 8 | repo-oss                  | openSUSE-13.1-Oss                  | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.1/repo/oss/        |        
 9 | repo-source               | openSUSE-13.1-Source               | No      | Yes     |   99     | NONE   | http://download.opensuse.org/source/distribution/13.1/repo/oss/ |        
10 | repo-update               | openSUSE-13.1-Update               | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.1/                       |        
11 | repo-update-non-oss       | openSUSE-13.1-Update-Non-Oss       | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.1-non-oss/               |        
linux-0icz:/home/vlad # 

What is a useful rule-of-thumb for deciding whether to use Packman or Suse repository (or from any other provider for that matter)? I simply enabled the Packman repository after installing OS13.1 because to me it looked like a good idea at the time.
I suspect this may also impact on another problem I have been having elsewhere.
Kind regards

Since you have videolan and packman enabled that might be the problem (or not).
What is the output of

zypper se -si ffmpeg

Since the last post, I have removed ffmpeg and vlc then disabled Packman and Videolan.
The revised output of zypper lr -d

is therefore

linux-0icz:/home/vlad #zypper lr -d
#  | Alias                                | Name                                                | Enabled | Refresh | Priority | Type   | URI                                                                           | Service
---+--------------------------------------+-----------------------------------------------------+---------+---------+----------+--------+-------------------------------------------------------------------------------+--------
 1 | VLC                                  | VLC                                                 | No      | No      |   99     | rpm-md | http://download.videolan.org/pub/vlc/SuSE/13.1                                |        
 2 | download.nvidia.com-opensuse         | nVidia Graphics Drivers                             | No      | Yes     |   99     | rpm-md | http://download.nvidia.com/opensuse/13.1/                                     |        
 3 | download.opensuse.org-13.1-non-oss   | Update Repository (Non-Oss)                         | No      | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.1-non-oss/                             |        
 4 | download.opensuse.org-Virtualization | openSUSE BuildService - Virtualization (VirtualBox) | No      | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/Virtualization/openSUSE_13.1/       |        
 5 | ftp.gwdg.de-suse                     | Packman Repository                                  | No      | Yes     |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_13.1/                      |        
 6 | openSUSE-13.1-1.10                   | openSUSE-13.1-1.10                                  | No      | No      |   99     | yast2  | cd:///?devices=/dev/disk/by-id/usb-BUFFALO_BUFFALO_Optical_Drive_0000000025A7 |        
 7 | opensuse-guide.org-repo              | libdvdcss repository                                | No      | Yes     |   99     | rpm-md | http://opensuse-guide.org/repo/13.1/                                          |        
 8 | repo-debug                           | openSUSE-13.1-Debug                                 | No      | Yes     |   99     | yast2  | http://download.opensuse.org/debug/distribution/13.1/repo/oss/                |        
 9 | repo-debug-update                    | openSUSE-13.1-Update-Debug                          | No      | Yes     |   99     | rpm-md | http://download.opensuse.org/debug/update/13.1/                               |        
10 | repo-debug-update-non-oss            | openSUSE-13.1-Update-Debug-Non-Oss                  | No      | Yes     |   99     | rpm-md | http://download.opensuse.org/debug/update/13.1-non-oss/                       |        
11 | repo-non-oss                         | openSUSE-13.1-Non-Oss                               | No      | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.1/repo/non-oss/                  |        
12 | repo-oss                             | openSUSE-13.1-Oss                                   | No      | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.1/repo/oss/                      |        
13 | repo-source                          | openSUSE-13.1-Source                                | No      | Yes     |   99     | yast2  | http://download.opensuse.org/source/distribution/13.1/repo/oss/               |        
linux-0icz:/home/vlad # 

that of zypper se -si ffmpeg is

linux-0icz:/home/vlad # zypper se -si ffmpeg
Loading repository data...
Reading installed packages...
No packages found.
linux-0icz:/home/vlad # 

and likewise for vlc.

Forgetting about vlc, should I now be installing ffmpeg from Packman, openSUSE OSS/Non-OSS or the openSUSE 13.1 one-click package on the ffmpeg site? I don’t really know how code flows from ffmpeg->Packman and/or openSUSE.
Thank you for your interest.

On 2014-10-05 06:56, vzawalin1 wrote:
>
> Thank you for your reply.
> Here is the zypper output:


> --------------------
>     linux-0icz:/home/vlad # zypper lr -d
>   #  | Alias                     | Name                               | Enabled | Refresh | Priority | Type   | URI                                                             | Service
>   ---+---------------------------+------------------------------------+---------+---------+----------+--------+-----------------------------------------------------------------+--------
>   1 | Packman Repository        | Packman Repository                 | Yes     | Yes     |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_13.1/        |
>   2 | SuSE                      | SuSE                               | Yes     | Yes     |   99     | rpm-md | http://download.videolan.org/SuSE/13.1/                         |

What is a useful rule-of-thumb for deciding whether to use Packman or
Suse repository (or from any other provider for that matter)?

Look carefully: Number 2 is NOT SuSE, it is videolan.

Videolan and packman conflict if you install library and tool chains mixed.


>   1 | Packman Repository        | Packman Repository                 | Yes     | Yes     |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_13.1/        |
>   2 | SuSE                      | SuSE                               | Yes     | Yes     |   99     | rpm-md | http://download.videolan.org/SuSE/13.1/                         |

If you don’t know how to solve that, choose one of those repos, remove
the other. Typically we select packman. There are instructions in a
sticky on the multimedia forum about what to do.

One method is to simply enable packman repo, then “switch system
packages to this repo”. But it may switch “excessively”.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Just enable the Packman repo again and install ffmpeg.
Afterwards you should switch all system packages to the Packman repo, as you might still have packages from the VLC repo. (ffmpeg consists of more packages, e.g. also libavutil and libavcodec)

And you definitely should enable the standard repos again, right now you have all disabled.

sudo zypper mr -e 2 3 5 11 12
sudo zypper in ffmpeg
sudo zypper dup --from 5

You might want to enable repos 4 and 7 again as well.

Btw, there is no ffmpeg in openSUSE OSS/Non-OSS… :wink:

This whole process was getting my head around what each repository is used for.

To recap my understanding:

  • OSS - unencumbered open source code
  • Non-OSS proprietary redistributable code
  • Packman - packages with potential legal implications but verified by OpenSUSE for dependencies and operability
  • Community - non-oss or other software directly packaged by their developers for specific versions of OpenSuse

After further cleaning up of libavutil, libavcodec etc, from previous trials I enabled Packman only and then installed ffmpeg and vlc. Ffmpeg installed with no problem, while vlc needed some manual dependency intervention due to the presence of v3.0.
Both applications now work perfectly.

The repository management infrastructure is very powerful but does entail a learning curve.

Thank you all for your help.