2020-06-19 11:10:06 ,
https://git.io/JfFAb in
jrottenberg/ffmpeg
@jrottenberg
> do you have an output of docker images | grep ffmpeg before and after that PR .
I ran a few GitHub Actions jobs to build the before/after images.
- https://github.com/zmwangx/docker-ffmpeg/actions/runs/140430025: builds images on master, with a `-baseline` suffix attached to the tags to differentiate;
- https://github.com/zmwangx/docker-ffmpeg/actions/runs/140502551: builds images from this PR, without suffix.
Btw, noticed two things during these builds:
- All `nvidia` images on master are currently broken (fails due to `libnpp not found` during the FFmpeg compilation step). Not sure why they were okay just a couple days ago... I didn't investigate this issue.
- The Azure test builds are currently largely useless in detecting build errors because when `docker build` fails, bash doesn't bail out, and the subsequent `docker run` simply pulls the previously built image with the same tag and succeeds. So previously there were bugs in my PR but Azure was all green...
This is easy to fix with `set -e`, so I added another commit to fix that.
Here are the results:
```
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-alpine311 a20e54ddf4c5 4 hours ago 133MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-alpine311-baseline 8bca77c5b04b 6 hours ago 132MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-alpine38 9602a567bda9 4 hours ago 127MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-alpine38-baseline c4e0cd6af902 6 hours ago 126MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-centos7 4ace7f45ed1d 4 hours ago 327MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-centos7-baseline 58ad6bd77bab 6 hours ago 326MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-centos8 833e68bd5955 4 hours ago 334MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-centos8-baseline 26c4bd2187fa 6 hours ago 332MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-ubuntu1604-baseline e8755c6403d6 6 hours ago 246MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-ubuntu1604 d29df7a479e5 4 hours ago 247MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-ubuntu1804 3d0eee6807bb 4 hours ago 205MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-ubuntu1804-baseline f43ee9f874c9 6 hours ago 204MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-vaapi1604 8e4d88d30010 4 hours ago 250MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-vaapi1604-baseline a8d7e2a6e8ab 6 hours ago 249MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-vaapi1804 46ec6b4bc780 4 hours ago 214MB
docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg 4.3-vaapi1804-baseline 99cde0fd8091 6 hours ago 213MB
```
And a list of all files added, in the `4.3-ubuntu1804` case (others are similar):
```diff
$ diff <(docker run --rm --entrypoint /usr/bin/find docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg:4.3-ubuntu1804-baseline / \( -name proc -o -name kernel \) -prune -o -print) <(docker run --rm --entrypoint /usr/bin/find docker.pkg.github.com/zmwangx/docker-ffmpeg/ffmpeg:4.3-ubuntu1804 / \( -name proc -o -name kernel \) -prune -o -print)
15070a15071,15206
> /usr/local/include/libavresample
> /usr/local/include/libavresample/version.h
> /usr/local/include/libavresample/avresample.h
> /usr/local/include/libavformat
> /usr/local/include/libavformat/avformat.h
> /usr/local/include/libavformat/version.h
> /usr/local/include/libavformat/avio.h
> /usr/local/include/libavcodec
> /usr/local/include/libavcodec/videotoolbox.h
> /usr/local/include/libavcodec/qsv.h
> /usr/local/include/libavcodec/mediacodec.h
> /usr/local/include/libavcodec/codec.h
> /usr/local/include/libavcodec/vorbis_parser.h
> /usr/local/include/libavcodec/dv_profile.h
> /usr/local/include/libavcodec/xvmc.h
> /usr/local/include/libavcodec/avfft.h
> /usr/local/include/libavcodec/packet.h
> /usr/local/include/libavcodec/vaapi.h
> /usr/local/include/libavcodec/d3d11va.h
> /usr/local/include/libavcodec/avcodec.h
> /usr/local/include/libavcodec/version.h
> /usr/local/include/libavcodec/dxva2.h
> /usr/local/include/libavcodec/codec_desc.h
> /usr/local/include/libavcodec/vdpau.h
> /usr/local/include/libavcodec/adts_parser.h
> /usr/local/include/libavcodec/dirac.h
> /usr/local/include/libavcodec/jni.h
> /usr/local/include/libavcodec/bsf.h
> /usr/local/include/libavcodec/codec_par.h
> /usr/local/include/libavcodec/avdct.h
> /usr/local/include/libavcodec/codec_id.h
> /usr/local/include/libavcodec/ac3_parser.h
> /usr/local/include/libpostproc
> /usr/local/include/libpostproc/version.h
> /usr/local/include/libpostproc/postprocess.h
> /usr/local/include/libavfilter
> /usr/local/include/libavfilter/buffersrc.h
> /usr/local/include/libavfilter/avfilter.h
> /usr/local/include/libavfilter/version.h
> /usr/local/include/libavfilter/buffersink.h
> /usr/local/include/libswresample
> /usr/local/include/libswresample/swresample.h
> /usr/local/include/libswresample/version.h
> /usr/local/include/libavdevice
> /usr/local/include/libavdevice/avdevice.h
> /usr/local/include/libavdevice/version.h
> /usr/local/include/libavutil
> /usr/local/include/libavutil/md5.h
> /usr/local/include/libavutil/sha.h
> /usr/local/include/libavutil/samplefmt.h
> /usr/local/include/libavutil/hash.h
> /usr/local/include/libavutil/audio_fifo.h
> /usr/local/include/libavutil/error.h
> /usr/local/include/libavutil/dict.h
> /usr/local/include/libavutil/lfg.h
> /usr/local/include/libavutil/sha512.h
> /usr/local/include/libavutil/file.h
> /usr/local/include/libavutil/mastering_display_metadata.h
> /usr/local/include/libavutil/channel_layout.h
> /usr/local/include/libavutil/stereo3d.h
> /usr/local/include/libavutil/log.h
> /usr/local/include/libavutil/downmix_info.h
> /usr/local/include/libavutil/hmac.h
> /usr/local/include/libavutil/threadmessage.h
> /usr/local/include/libavutil/pixdesc.h
> /usr/local/include/libavutil/mem.h
> /usr/local/include/libavutil/cast5.h
> /usr/local/include/libavutil/hwcontext_cuda.h
> /usr/local/include/libavutil/base64.h
> /usr/local/include/libavutil/avassert.h
> /usr/local/include/libavutil/adler32.h
> /usr/local/include/libavutil/motion_vector.h
> /usr/local/include/libavutil/cpu.h
> /usr/local/include/libavutil/tea.h
> /usr/local/include/libavutil/rc4.h
> /usr/local/include/libavutil/frame.h
> /usr/local/include/libavutil/timecode.h
> /usr/local/include/libavutil/aes_ctr.h
> /usr/local/include/libavutil/pixelutils.h
> /usr/local/include/libavutil/hdr_dynamic_metadata.h
> /usr/local/include/libavutil/avstring.h
> /usr/local/include/libavutil/macros.h
> /usr/local/include/libavutil/pixfmt.h
> /usr/local/include/libavutil/aes.h
> /usr/local/include/libavutil/version.h
> /usr/local/include/libavutil/hwcontext_vaapi.h
> /usr/local/include/libavutil/crc.h
> /usr/local/include/libavutil/video_enc_params.h
> /usr/local/include/libavutil/common.h
> /usr/local/include/libavutil/hwcontext_d3d11va.h
> /usr/local/include/libavutil/tree.h
> /usr/local/include/libavutil/mathematics.h
> /usr/local/include/libavutil/spherical.h
> /usr/local/include/libavutil/eval.h
> /usr/local/include/libavutil/twofish.h
> /usr/local/include/libavutil/avconfig.h
> /usr/local/include/libavutil/random_seed.h
> /usr/local/include/libavutil/fifo.h
> /usr/local/include/libavutil/ffversion.h
> /usr/local/include/libavutil/encryption_info.h
> /usr/local/include/libavutil/attributes.h
> /usr/local/include/libavutil/hwcontext_dxva2.h
> /usr/local/include/libavutil/hwcontext_opencl.h
> /usr/local/include/libavutil/blowfish.h
> /usr/local/include/libavutil/intfloat.h
> /usr/local/include/libavutil/imgutils.h
> /usr/local/include/libavutil/hwcontext_vulkan.h
> /usr/local/include/libavutil/hwcontext_vdpau.h
> /usr/local/include/libavutil/dovi_meta.h
> /usr/local/include/libavutil/hwcontext_videotoolbox.h
> /usr/local/include/libavutil/time.h
> /usr/local/include/libavutil/xtea.h
> /usr/local/include/libavutil/display.h
> /usr/local/include/libavutil/buffer.h
> /usr/local/include/libavutil/hwcontext.h
> /usr/local/include/libavutil/avutil.h
> /usr/local/include/libavutil/opt.h
> /usr/local/include/libavutil/rational.h
> /usr/local/include/libavutil/hwcontext_qsv.h
> /usr/local/include/libavutil/hwcontext_drm.h
> /usr/local/include/libavutil/timestamp.h
> /usr/local/include/libavutil/camellia.h
> /usr/local/include/libavutil/des.h
> /usr/local/include/libavutil/bprint.h
> /usr/local/include/libavutil/lzo.h
> /usr/local/include/libavutil/tx.h
> /usr/local/include/libavutil/replaygain.h
> /usr/local/include/libavutil/hwcontext_mediacodec.h
> /usr/local/include/libavutil/ripemd.h
> /usr/local/include/libavutil/murmur3.h
> /usr/local/include/libavutil/bswap.h
> /usr/local/include/libavutil/intreadwrite.h
> /usr/local/include/libavutil/parseutils.h
> /usr/local/include/libswscale
> /usr/local/include/libswscale/version.h
> /usr/local/include/libswscale/swscale.h
15073a15210,15211
> /usr/local/lib/libxcb-shm.so
> /usr/local/lib/libavresample.so
15074a15213
> /usr/local/lib/libxcb.so
15076a15216
> /usr/local/lib/libtheoraenc.so
15077a15218,15220
> /usr/local/lib/libpostproc.so
> /usr/local/lib/libfreetype.so
> /usr/local/lib/libavdevice.so
15079a15223,15224
> /usr/local/lib/libopus.so
> /usr/local/lib/libvorbisenc.so
15080a15226
> /usr/local/lib/libaom.so
15082a15229
> /usr/local/lib/libswresample.so
15083a15231,15233
> /usr/local/lib/libavformat.so
> /usr/local/lib/libXau.so
> /usr/local/lib/libfontconfig.so
15085a15236
> /usr/local/lib/libopencore-amrwb.so
15086a15238,15239
> /usr/local/lib/libkvazaar.so
> /usr/local/lib/libavfilter.so
15087a15241
> /usr/local/lib/libzmq.so
15091a15246
> /usr/local/lib/libxcb-xfixes.so
15093a15249
> /usr/local/lib/libopencore-amrnb.so
15094a15251
> /usr/local/lib/libtheoradec.so
15095a15253
> /usr/local/lib/libvpx.so
15096a15255,15257
> /usr/local/lib/libx265.so
> /usr/local/lib/libx264.so
> /usr/local/lib/libfribidi.so
15097a15259
> /usr/local/lib/libxvidcore.so
15100a15263
> /usr/local/lib/libmp3lame.so
15102a15266
> /usr/local/lib/libvidstab.so
15103a15268
> /usr/local/lib/libavutil.so
15104a15270,15271
> /usr/local/lib/libsrt.so
> /usr/local/lib/libbluray.so
15105a15273
> /usr/local/lib/libavcodec.so
15108a15277
> /usr/local/lib/libfdk-aac.so
15109a15279,15289
> /usr/local/lib/pkgconfig
> /usr/local/lib/pkgconfig/libavdevice.pc
> /usr/local/lib/pkgconfig/libswscale.pc
> /usr/local/lib/pkgconfig/libavfilter.pc
> /usr/local/lib/pkgconfig/libswresample.pc
> /usr/local/lib/pkgconfig/libavformat.pc
> /usr/local/lib/pkgconfig/libavresample.pc
> /usr/local/lib/pkgconfig/libavutil.pc
> /usr/local/lib/pkgconfig/libavcodec.pc
> /usr/local/lib/pkgconfig/libpostproc.pc
> /usr/local/lib/libxml2.so
15114a15295,15297
> /usr/local/lib/libopenjp2.so
> /usr/local/lib/libass.so
> /usr/local/lib/libswscale.so
15116a15300
> /usr/local/lib/libwebp.so
15117a15302,15304
> /usr/local/lib/libogg.so
> /usr/local/lib/libvorbis.so
> /usr/local/lib/libxcb-shape.so
```
The .so files added are all symlinks, the .pc files are tiny, so almost the entire added weight comes from FFmpeg headers added to `/usr/local/include`, which as I said is about 1.3MB.