Skip to content

ffmpeg: Several building/ packaging issues. #4

@dreirund

Description

@dreirund

Ahoj,

I try to build the packages libffmpeg-custom and ffmpeg-custom from the HandsomeMod/packages feed (with fdkaac-patches removed, see issue #3).

There are several issues with this package.

The base configuration I use for the collected reports here is the following:

  • grep -i ffmpeg .config:
    CONFIG_PACKAGE_libffmpeg-audio-dec=m
    CONFIG_PACKAGE_libffmpeg-custom=m
    CONFIG_FFMPEG_CUSTOM_GPL=y
    CONFIG_FFMPEG_CUSTOM_GPLV3=y
    CONFIG_FFMPEG_CUSTOM_NONFREE=y
    CONFIG_FFMPEG_CUSTOM_PATENTED=y
    CONFIG_FFMPEG_CUSTOM_LARGE=y
    CONFIG_FFMPEG_CUSTOM_FFSERVER_SUPPORT=y
    CONFIG_FFMPEG_CUSTOM_MINIDLNA_SUPPORT=y
    CONFIG_FFMPEG_CUSTOM_AUDIO_DEC_SUPPORT=y
    # CONFIG_FFMPEG_CUSTOM_PROGRAMS is not set
    # CONFIG_FFMPEG_CUSTOM_SELECT_libfdk-aac is not set
    CONFIG_FFMPEG_CUSTOM_SELECT_libmp3lame=y
    # CONFIG_FFMPEG_CUSTOM_SELECT_libopus is not set
    CONFIG_FFMPEG_CUSTOM_SELECT_libshine=y
    CONFIG_FFMPEG_CUSTOM_SELECT_libx264=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_ac3=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_jpegls=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_mpeg1video=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_mpeg2video=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_mpeg4=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_pcm_s16be=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_pcm_s16le=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_png=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_vorbis=y
    CONFIG_FFMPEG_CUSTOM_ENCODER_zlib=y
    CONFIG_FFMPEG_CUSTOM_DECODER_aac=y
    CONFIG_FFMPEG_CUSTOM_SELECT_adpcm=y
    CONFIG_FFMPEG_CUSTOM_DECODER_ac3=y
    CONFIG_FFMPEG_CUSTOM_DECODER_alac=y
    CONFIG_FFMPEG_CUSTOM_DECODER_amrnb=y
    CONFIG_FFMPEG_CUSTOM_DECODER_amrwb=y
    CONFIG_FFMPEG_CUSTOM_DECODER_ape=y
    CONFIG_FFMPEG_CUSTOM_DECODER_atrac3=y
    CONFIG_FFMPEG_CUSTOM_DECODER_flac=y
    CONFIG_FFMPEG_CUSTOM_DECODER_gif=y
    CONFIG_FFMPEG_CUSTOM_DECODER_h264=y
    CONFIG_FFMPEG_CUSTOM_DECODER_hevc=y
    CONFIG_FFMPEG_CUSTOM_DECODER_jpegls=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mp2=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mp3=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mpegvideo=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mpeg1video=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mpeg2video=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mpeg4=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mpc7=y
    CONFIG_FFMPEG_CUSTOM_DECODER_mpc8=y
    CONFIG_FFMPEG_CUSTOM_DECODER_opus=y
    CONFIG_FFMPEG_CUSTOM_DECODER_pcm_s16be=y
    CONFIG_FFMPEG_CUSTOM_DECODER_pcm_s16le=y
    CONFIG_FFMPEG_CUSTOM_DECODER_png=y
    CONFIG_FFMPEG_CUSTOM_DECODER_vc1=y
    CONFIG_FFMPEG_CUSTOM_DECODER_vorbis=y
    CONFIG_FFMPEG_CUSTOM_DECODER_wavpack=y
    CONFIG_FFMPEG_CUSTOM_DECODER_wmav1=y
    CONFIG_FFMPEG_CUSTOM_DECODER_wmav2=y
    CONFIG_FFMPEG_CUSTOM_DECODER_zlib=y
    CONFIG_FFMPEG_CUSTOM_MUXER_ac3=y
    CONFIG_FFMPEG_CUSTOM_MUXER_ffm=y
    CONFIG_FFMPEG_CUSTOM_MUXER_h264=y
    CONFIG_FFMPEG_CUSTOM_MUXER_hevc=y
    CONFIG_FFMPEG_CUSTOM_MUXER_mp3=y
    CONFIG_FFMPEG_CUSTOM_MUXER_mp4=y
    CONFIG_FFMPEG_CUSTOM_MUXER_mpeg1video=y
    CONFIG_FFMPEG_CUSTOM_MUXER_mpeg2video=y
    CONFIG_FFMPEG_CUSTOM_MUXER_mpegts=y
    CONFIG_FFMPEG_CUSTOM_MUXER_ogg=y
    CONFIG_FFMPEG_CUSTOM_MUXER_rtp=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_aac=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_avi=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_ac3=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_amr=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_ape=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_flac=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_ffm=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_h264=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_hevc=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_matroska=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mov=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mp3=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mpegvideo=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mpegps=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mpegts=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mpc=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_mpc8=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_ogg=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_rm=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_rtsp=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_sdp=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_rtp=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_vc1=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_wav=y
    CONFIG_FFMPEG_CUSTOM_DEMUXER_wv=y
    CONFIG_FFMPEG_CUSTOM_PARSER_aac=y
    CONFIG_FFMPEG_CUSTOM_PARSER_ac3=y
    CONFIG_FFMPEG_CUSTOM_PARSER_flac=y
    CONFIG_FFMPEG_CUSTOM_PARSER_h264=y
    CONFIG_FFMPEG_CUSTOM_PARSER_hevc=y
    CONFIG_FFMPEG_CUSTOM_PARSER_mpegaudio=y
    CONFIG_FFMPEG_CUSTOM_PARSER_mpegvideo=y
    CONFIG_FFMPEG_CUSTOM_PARSER_mpeg4video=y
    CONFIG_FFMPEG_CUSTOM_PARSER_opus=y
    CONFIG_FFMPEG_CUSTOM_PARSER_vc1=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_file=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_http=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_icecast=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_pipe=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_rtp=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_tcp=y
    CONFIG_FFMPEG_CUSTOM_PROTOCOL_udp=y
    # CONFIG_PACKAGE_libffmpeg-full is not set
    # CONFIG_PACKAGE_libffmpeg-mini is not set
    # CONFIG_PACKAGE_ffmpeg is not set
    # CONFIG_PACKAGE_ffmpeg-custom is not set
    
  • → Full .config.

and that succeeds to build libffmpeg-custom.

Then, for each of the individual reports here, I have also selected the configuration option(s) mentioned in the individual report.

Packaging libffmpeg-audio-dec fails to find file ipkg-install/usr/include/libpostproc.

If I select to build the package libffmpeg-audio-dec (CONFIG_PACKAGE_libffmpeg-audio-dec=m) with above configuration,
make -j1 V=sc package/feeds/packages/ffmpeg/compile
fails with:

[...]
cp -fpR /[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-audio-dec/ffmpeg-4.3.4/ipkg-install/usr/include/libpostproc /[...]/tmp/stage-ffmpeg/usr/include/
cp: cannot stat '/[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-audio-dec/ffmpeg-4.3.4/ipkg-install/usr/include/libpostproc': No such file or directory
make[2]: *** [Makefile:804: /[...]/staging_dir/target-aarch64_cortex-a53+neon_musl/stamp/.ffmpeg.audio-dec_installed] Error 1
make[2]: Leaving directory '/[...]/feeds/packages/multimedia/ffmpeg'
time: package/feeds/packages/ffmpeg/audio-dec/compile#0.59#0.18#0.66
    ERROR: package/feeds/packages/ffmpeg failed to build (build variant: audio-dec).
[...]

While trying to package, it does not find the file build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-audio-dec/ffmpeg-4.3.4/ipkg-install/usr/include/libpostproc.

"Include ffmpeg command-line utilities" (FFMPEG_CUSTOM_PROGRAMS) fails with ffserver binary not found.

The option "Include ffmpeg command-line utilities" (CONFIG_FFMPEG_CUSTOM_PROGRAMS=y) leads to ffmpeg package building fail due to missing ffserver binary:

cp -fpR /[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-custom/ffmpeg-4.3.4/ipkg-install/usr/bin/ffserver /[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-custom/ffmpeg-4.3.4/ipkg-aarch64_cortex-a53_neon/ffserver-custom/usr/bin/
cp: cannot stat '/[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-custom/ffmpeg-4.3.4/ipkg-install/usr/bin/ffserver': No such file or directory
make[2]: *** [Makefile:803: /[...]/bin/packages/aarch64_cortex-a53_neon/packages/ffserver-custom_4.3.4-1_aarch64_cortex-a53_neon.ipk] Error 1
make[2]: Leaving directory '/[...]/feeds/packages/multimedia/ffmpeg'
time: package/feeds/packages/ffmpeg/custom/compile#0.50#0.23#0.63
    ERROR: package/feeds/packages/ffmpeg failed to build (build variant: custom).
make[1]: *** [package/Makefile:116: package/feeds/packages/ffmpeg/compile] Error 1

However, selecting "Include support for ffserver (FFmpeg streaming server)" (CONFIG_FFMPEG_CUSTOM_FFSERVER_SUPPORT=y) does not lead to this error.

Packaging ffmpeg-custom/ ffprobe-custom/ ffserver-custom fails due to missing binaries.

If I select to build the package ffmpeg-custom (CONFIG_PACKAGE_ffmpeg-custom=m) with above configuration,
make -j1 V=sc package/feeds/packages/ffmpeg/compile
fails with:

cp -fpR /[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-custom/ffmpeg-4.3.4/ipkg-install/usr/bin/ffmpeg /[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-custom/ffmpeg-4.3.4/ipkg-aarch64_cortex-a53_neon/ffmpeg-custom/usr/bin/
cp: cannot stat '/[...]/build_dir/target-aarch64_cortex-a53+neon_musl/ffmpeg-custom/ffmpeg-4.3.4/ipkg-install/usr/bin/ffmpeg': No such file or directory
make[2]: *** [Makefile:801: /[...]/bin/packages/aarch64_cortex-a53_neon/packages/ffmpeg-custom_4.3.4-1_aarch64_cortex-a53_neon.ipk] Error 1
make[2]: Leaving directory '/[...]/feeds/packages/multimedia/ffmpeg'
time: package/feeds/packages/ffmpeg/custom/compile#0.53#0.20#0.61
    ERROR: package/feeds/packages/ffmpeg failed to build (build variant: custom).

Similarly for ffprobe-custom (CONFIG_PACKAGE_ffprobe-custom=y) and ffserver-custom (CONFIG_PACKAGE_ffserver-custom=y), where the corresponding binaries ipkg-install/usr/bin/ffprobe anr /ipkg-install/usr/bin/ffserver, respectively, are missing.

ffmpeg-custom misses dependencies on libavfilter.so.7, libpostproc.so.55 and libswresample.so.3.

I once also had while trying to build the package ffmpeg-custom (CONFIG_PACKAGE_ffmpeg-custom=m) with above configuration, that
make -j1 V=sc package/feeds/packages/ffmpeg/compile
failed with:

Package ffmpeg-custom is missing dependencies for the following libraries:
libavfilter.so.7
libpostproc.so.55
libswresample.so.3

This indicates that no package that ffmpeg-custom depends on packages that libraries, nor does ffmpeg-custom package them by itself.

But on subsequent tries I don't get those errors anymore, since I get the errors about the missing ffmpeg binary.

I have done a make ackage/feeds/packages/ffmpeg/clean from time to time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions