Compiling independent ffmpeg

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Compiling independent ffmpeg

Matthew Webber
Hi,

I compiled ffmpeg on Ubuntu 18.04 perfectly fine. I installed a whole
load of dev packages and compiled with lots of options, and all went
smoothly.

However when I removed the packages liblensfun-dev, libmodplug-dev,
libcodec2-dev and libfdk-aac-dev ffmpeg failed to work. Looking deeper
it is now missing liblensfun.so.1, libmodplug.so.1, libcodec2.so.0.7 and
libfdk-aac.so.1. Re-installing those packages makes those components
available and the program runs again.

Does the compilation not create these files or embed them into ffmpeg?
Are there any options I need to ensure these are created so I no longer
need these packages? I want to have program files that will work without
any of the other packages installed.

Matthew Webber
([hidden email])

_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Compiling independent ffmpeg

Carl Eugen Hoyos-2
Am So., 12. Jan. 2020 um 19:38 Uhr schrieb Matthew Webber
<[hidden email]>:

> I compiled ffmpeg on Ubuntu 18.04 perfectly fine. I installed a whole
> load of dev packages and compiled with lots of options, and all went
> smoothly.
>
> However when I removed the packages liblensfun-dev, libmodplug-dev,
> libcodec2-dev and libfdk-aac-dev ffmpeg failed to work. Looking deeper
> it is now missing liblensfun.so.1, libmodplug.so.1, libcodec2.so.0.7 and
> libfdk-aac.so.1.

So you did not uninstall liblensfun-dev but liblensfun

> Re-installing those packages makes those components
> available and the program runs again.
>
> Does the compilation not create these files or embed them into ffmpeg?

No (at least not in general), and this question is not related to FFmpeg.
Once upon a time, no dynamic libraries existed, meaning that every binary
on a system contained copies of all linked libraries. As this wastes a lot of
space, dynamic linking was invented (decades ago).
Typical compilers default to dynamic linking.

> Are there any options I need to ensure these are created so I no longer
> need these packages? I want to have program files that will work without
> any of the other packages installed.

You can add "--extra-ldflags=-static" to force static linking but your
distribution most likely will not provide a static lensfun library, so you
will have to compile all dependencies that you want yourself to
provide the necessary static libraries.

But as said, all this is not related to FFmpeg.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Compiling independent ffmpeg

Matthew Webber
Carl,

Thanks for this. I definitely did uninstall liblensfun-dev and not
liblensfun. It may be that one is dependent on another, but that is
definitely what I uninstalled through sudo apt-get remove liblensfun-dev.

Other packages I installed during compilation were subsequently
uninstalled without issue. Therefore I see it as an ffmpeg compilation,
otherwise I'd see every other feature I uninstalled failing. I noticed
the make and make install steps created and copied the other dependencies.

I don't mind dynamic linking, but I assumed the compilation step of
ffmpeg also compiled any dependent libraries it used. Obviously this is
not clear in guides and instructions that you'd need to leave all the
dev packages you use after compilation.

Matthew Webber
([hidden email])

On 12/01/2020 20:07, Carl Eugen Hoyos wrote:

> Am So., 12. Jan. 2020 um 19:38 Uhr schrieb Matthew Webber
> <[hidden email]>:
>
>> I compiled ffmpeg on Ubuntu 18.04 perfectly fine. I installed a whole
>> load of dev packages and compiled with lots of options, and all went
>> smoothly.
>>
>> However when I removed the packages liblensfun-dev, libmodplug-dev,
>> libcodec2-dev and libfdk-aac-dev ffmpeg failed to work. Looking deeper
>> it is now missing liblensfun.so.1, libmodplug.so.1, libcodec2.so.0.7 and
>> libfdk-aac.so.1.
> So you did not uninstall liblensfun-dev but liblensfun
>
>> Re-installing those packages makes those components
>> available and the program runs again.
>>
>> Does the compilation not create these files or embed them into ffmpeg?
> No (at least not in general), and this question is not related to FFmpeg.
> Once upon a time, no dynamic libraries existed, meaning that every binary
> on a system contained copies of all linked libraries. As this wastes a lot of
> space, dynamic linking was invented (decades ago).
> Typical compilers default to dynamic linking.
>
>> Are there any options I need to ensure these are created so I no longer
>> need these packages? I want to have program files that will work without
>> any of the other packages installed.
> You can add "--extra-ldflags=-static" to force static linking but your
> distribution most likely will not provide a static lensfun library, so you
> will have to compile all dependencies that you want yourself to
> provide the necessary static libraries.
>
> But as said, all this is not related to FFmpeg.
>
> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".

_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Compiling independent ffmpeg

Yellow Penguin
The package liblensfun1 is a dependency of liblensfun-dev. Maybe you used
aptitude or used apt-get autoremove at a later time to remove any orphaned
package? If it got installed as a dependency of liblensfun-dev, it will no
longer be a dependency of any package after you uninstalled that. The
library liblensfun1.so.1 that you were missing is part of the liblensfun1
package, not the -dev package. The same applies to the other ones. It's
safe to remove the -dev packages, but you will have to ensure that the
corresponding runtime packages are installed, and they are easily lost if
you don't explicitly install them or mark them as a dependency of something
else.

On Sun, Jan 12, 2020 at 9:22 PM Matthew Webber <[hidden email]>
wrote:

> Carl,
>
> Thanks for this. I definitely did uninstall liblensfun-dev and not
> liblensfun. It may be that one is dependent on another, but that is
> definitely what I uninstalled through sudo apt-get remove liblensfun-dev.
>
> Other packages I installed during compilation were subsequently
> uninstalled without issue. Therefore I see it as an ffmpeg compilation,
> otherwise I'd see every other feature I uninstalled failing. I noticed
> the make and make install steps created and copied the other dependencies.
>
> I don't mind dynamic linking, but I assumed the compilation step of
> ffmpeg also compiled any dependent libraries it used. Obviously this is
> not clear in guides and instructions that you'd need to leave all the
> dev packages you use after compilation.
>
> Matthew Webber
> ([hidden email])
>
> On 12/01/2020 20:07, Carl Eugen Hoyos wrote:
> > Am So., 12. Jan. 2020 um 19:38 Uhr schrieb Matthew Webber
> > <[hidden email]>:
> >
> >> I compiled ffmpeg on Ubuntu 18.04 perfectly fine. I installed a whole
> >> load of dev packages and compiled with lots of options, and all went
> >> smoothly.
> >>
> >> However when I removed the packages liblensfun-dev, libmodplug-dev,
> >> libcodec2-dev and libfdk-aac-dev ffmpeg failed to work. Looking deeper
> >> it is now missing liblensfun.so.1, libmodplug.so.1, libcodec2.so.0.7 and
> >> libfdk-aac.so.1.
> > So you did not uninstall liblensfun-dev but liblensfun
> >
> >> Re-installing those packages makes those components
> >> available and the program runs again.
> >>
> >> Does the compilation not create these files or embed them into ffmpeg?
> > No (at least not in general), and this question is not related to FFmpeg.
> > Once upon a time, no dynamic libraries existed, meaning that every binary
> > on a system contained copies of all linked libraries. As this wastes a
> lot of
> > space, dynamic linking was invented (decades ago).
> > Typical compilers default to dynamic linking.
> >
> >> Are there any options I need to ensure these are created so I no longer
> >> need these packages? I want to have program files that will work without
> >> any of the other packages installed.
> > You can add "--extra-ldflags=-static" to force static linking but your
> > distribution most likely will not provide a static lensfun library, so
> you
> > will have to compile all dependencies that you want yourself to
> > provide the necessary static libraries.
> >
> > But as said, all this is not related to FFmpeg.
> >
> > Carl Eugen
> > _______________________________________________
> > ffmpeg-user mailing list
> > [hidden email]
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> >
> > To unsubscribe, visit link above, or email
> > [hidden email] with subject "unsubscribe".
>
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Compiling independent ffmpeg

Carl Eugen Hoyos-2
In reply to this post by Matthew Webber
Am So., 12. Jan. 2020 um 21:22 Uhr schrieb Matthew Webber
<[hidden email]>:

> I don't mind dynamic linking, but I assumed the compilation step of
> ffmpeg also compiled any dependent libraries it used.

This is (technically) not possible.
(The scripts that do that do that do not work at least to some extent)

Please find out what top-posting means and avoid it here.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Compiling independent ffmpeg

Matthew Webber
In reply to this post by Yellow Penguin
Yellow Penguin,

Thank you for your explanation on this. You've just answered my question.

Matthew Webber
([hidden email])

On 12/01/2020 21:17, Yellow Penguin wrote:

> The package liblensfun1 is a dependency of liblensfun-dev. Maybe you used
> aptitude or used apt-get autoremove at a later time to remove any orphaned
> package? If it got installed as a dependency of liblensfun-dev, it will no
> longer be a dependency of any package after you uninstalled that. The
> library liblensfun1.so.1 that you were missing is part of the liblensfun1
> package, not the -dev package. The same applies to the other ones. It's
> safe to remove the -dev packages, but you will have to ensure that the
> corresponding runtime packages are installed, and they are easily lost if
> you don't explicitly install them or mark them as a dependency of something
> else.
>
> On Sun, Jan 12, 2020 at 9:22 PM Matthew Webber <[hidden email]>
> wrote:
>
>> Carl,
>>
>> Thanks for this. I definitely did uninstall liblensfun-dev and not
>> liblensfun. It may be that one is dependent on another, but that is
>> definitely what I uninstalled through sudo apt-get remove liblensfun-dev.
>>
>> Other packages I installed during compilation were subsequently
>> uninstalled without issue. Therefore I see it as an ffmpeg compilation,
>> otherwise I'd see every other feature I uninstalled failing. I noticed
>> the make and make install steps created and copied the other dependencies.
>>
>> I don't mind dynamic linking, but I assumed the compilation step of
>> ffmpeg also compiled any dependent libraries it used. Obviously this is
>> not clear in guides and instructions that you'd need to leave all the
>> dev packages you use after compilation.
>>
>> Matthew Webber
>> ([hidden email])
>>
>> On 12/01/2020 20:07, Carl Eugen Hoyos wrote:
>>> Am So., 12. Jan. 2020 um 19:38 Uhr schrieb Matthew Webber
>>> <[hidden email]>:
>>>
>>>> I compiled ffmpeg on Ubuntu 18.04 perfectly fine. I installed a whole
>>>> load of dev packages and compiled with lots of options, and all went
>>>> smoothly.
>>>>
>>>> However when I removed the packages liblensfun-dev, libmodplug-dev,
>>>> libcodec2-dev and libfdk-aac-dev ffmpeg failed to work. Looking deeper
>>>> it is now missing liblensfun.so.1, libmodplug.so.1, libcodec2.so.0.7 and
>>>> libfdk-aac.so.1.
>>> So you did not uninstall liblensfun-dev but liblensfun
>>>
>>>> Re-installing those packages makes those components
>>>> available and the program runs again.
>>>>
>>>> Does the compilation not create these files or embed them into ffmpeg?
>>> No (at least not in general), and this question is not related to FFmpeg.
>>> Once upon a time, no dynamic libraries existed, meaning that every binary
>>> on a system contained copies of all linked libraries. As this wastes a
>> lot of
>>> space, dynamic linking was invented (decades ago).
>>> Typical compilers default to dynamic linking.
>>>
>>>> Are there any options I need to ensure these are created so I no longer
>>>> need these packages? I want to have program files that will work without
>>>> any of the other packages installed.
>>> You can add "--extra-ldflags=-static" to force static linking but your
>>> distribution most likely will not provide a static lensfun library, so
>> you
>>> will have to compile all dependencies that you want yourself to
>>> provide the necessary static libraries.
>>>
>>> But as said, all this is not related to FFmpeg.
>>>
>>> Carl Eugen
>>> _______________________________________________
>>> ffmpeg-user mailing list
>>> [hidden email]
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>>
>>> To unsubscribe, visit link above, or email
>>> [hidden email] with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-user mailing list
>> [hidden email]
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> [hidden email] with subject "unsubscribe".
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".

_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Compiling independent ffmpeg

Reindl Harald
In reply to this post by Matthew Webber


Am 12.01.20 um 21:21 schrieb Matthew Webber:
> I don't mind dynamic linking, but I assumed the compilation step of
> ffmpeg also compiled any dependent libraries it used. Obviously this is
> not clear in guides and instructions that you'd need to leave all the
> dev packages you use after compilation.

you don't

complain at Ubuntu that their packaging is broken, you can unisntall
every sinbgle devel package on a Fedora/CentOS machine as expected
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".