[MacPorts] #70958: ffmpeg: add libwebp support (was: ffmpeg - how to incorporate libwebp?)
MacPorts
noreply at macports.org
Sat Sep 28 06:47:30 UTC 2024
#70958: ffmpeg: add libwebp support
---------------------------+----------------------
Reporter: seamusdemora | Owner: mascguy
Type: enhancement | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.10.1
Resolution: | Keywords:
Port: ffmpeg |
---------------------------+----------------------
Changes (by ryandesign):
* status: new => assigned
* cc: dbevans, jeremyhu (added)
* owner: (none) => mascguy
* milestone: MacPorts 2.10.2 =>
* keywords: ffmpeg, libwebp =>
* type: request => enhancement
Old description:
> I gather that 'libwebp' is not included with the 'ffmpeg' port. I found a
> recipe for converting an 'mp4' to a 'webp', but all I got for that was
> the error 'Unknown encoder 'libwebp''.
>
> I followed Google's advice & tried to build 'libwebp' following these
> instructions:
> https://developers.google.com/speed/webp/docs/compiling#building
>
> But this did not work either. I got the exact same error message. FWIW,
> here's the command I was trying to use:
>
> {{{
> ffmpeg -i "JW-recording.mp4" \
> -vf "fps=10,scale=720:-1:flags=lanczos" \
> -vcodec libwebp -lossless 0 -compression_level 6 \
> -q:v 50 -loop 0 \
> -preset picture -an -vsync 0 JW-recording.webp
>
> ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
> built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
> configuration: --prefix=/opt/local --cc=/usr/bin/clang
> --mandir=/opt/local/share/man --enable-audiotoolbox --disable-indev=jack
> --disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb
> --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-
> opencl --disable-outdev=xv --enable-sdl2 --disable-securetransport
> --enable-videotoolbox --enable-avfilter --enable-avresample --enable-
> fontconfig --enable-gnutls --enable-libass --enable-libbluray --enable-
> libdav1d --enable-libfreetype --enable-libfribidi --enable-libmodplug
> --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-
> librsvg --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
> libvorbis --enable-libvpx --enable-libzimg --enable-libzvbi --enable-lzma
> --enable-pthreads --enable-shared --enable-swscale --enable-zlib
> --enable-libaom --enable-libsvtav1 --arch=arm64 --enable-gpl --enable-
> libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-
> postproc
> libavutil 56. 70.100 / 56. 70.100
> libavcodec 58.134.100 / 58.134.100
> libavformat 58. 76.100 / 58. 76.100
> libavdevice 58. 13.100 / 58. 13.100
> libavfilter 7.110.100 / 7.110.100
> libavresample 4. 0. 0 / 4. 0. 0
> libswscale 5. 9.100 / 5. 9.100
> libswresample 3. 9.100 / 3. 9.100
> libpostproc 55. 9.100 / 55. 9.100
> [libdav1d @ 0x12e815e00] libdav1d 1.4.3
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'JW-recording.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomav01iso2mp41
> encoder : Lavf58.76.100
> Duration: 00:00:05.50, start: 0.000000, bitrate: 106 kb/s
> Stream #0:0(und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv,
> progressive), 460x332 [SAR 1:1 DAR 115:83], 104 kb/s, 10 fps, 10 tbr,
> 10240 tbn, 10240 tbc (default)
> Metadata:
> handler_name : VideoHandler
> vendor_id : [0][0][0][0]
>
> Unknown encoder 'libwebp' <===ERROR MESSAGE
>
> }}}
>
> I did set the environment variable for 'LD_LIBRARY_PATH' as follows:
> 'export LD_LIBRARY_PATH=/usr/local/lib/', but that also didn't help. I
> even ran the above command using the following (in the 3rd line of the
> command above):
>
> ```
> -vcodec /usr/local/lib/libwebp -lossless 0 -compression_level 6 \
> ```
>
> I'm afraid I've reached the limits of my ability to troubleshoot this
> issue; posting here looking for some help!
New description:
I gather that 'libwebp' is not included with the 'ffmpeg' port. I found a
recipe for converting an 'mp4' to a 'webp', but all I got for that was the
error 'Unknown encoder 'libwebp''.
I followed Google's advice & tried to build 'libwebp' following these
instructions:
https://developers.google.com/speed/webp/docs/compiling#building
But this did not work either. I got the exact same error message. FWIW,
here's the command I was trying to use:
{{{
ffmpeg -i "JW-recording.mp4" \
-vf "fps=10,scale=720:-1:flags=lanczos" \
-vcodec libwebp -lossless 0 -compression_level 6 \
-q:v 50 -loop 0 \
-preset picture -an -vsync 0 JW-recording.webp
ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
configuration: --prefix=/opt/local --cc=/usr/bin/clang
--mandir=/opt/local/share/man --enable-audiotoolbox --disable-indev=jack
--disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb
--disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-
opencl --disable-outdev=xv --enable-sdl2 --disable-securetransport
--enable-videotoolbox --enable-avfilter --enable-avresample --enable-
fontconfig --enable-gnutls --enable-libass --enable-libbluray --enable-
libdav1d --enable-libfreetype --enable-libfribidi --enable-libmodplug
--enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-librsvg
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libvpx --enable-libzimg --enable-libzvbi --enable-lzma --enable-
pthreads --enable-shared --enable-swscale --enable-zlib --enable-libaom
--enable-libsvtav1 --arch=arm64 --enable-gpl --enable-libvidstab --enable-
libx264 --enable-libx265 --enable-libxvid --enable-postproc
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
[libdav1d @ 0x12e815e00] libdav1d 1.4.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'JW-recording.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomav01iso2mp41
encoder : Lavf58.76.100
Duration: 00:00:05.50, start: 0.000000, bitrate: 106 kb/s
Stream #0:0(und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv,
progressive), 460x332 [SAR 1:1 DAR 115:83], 104 kb/s, 10 fps, 10 tbr,
10240 tbn, 10240 tbc (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Unknown encoder 'libwebp' <===ERROR MESSAGE
}}}
I did set the environment variable for 'LD_LIBRARY_PATH' as follows:
'export LD_LIBRARY_PATH=/usr/local/lib/', but that also didn't help. I
even ran the above command using the following (in the 3rd line of the
command above):
{{{
-vcodec /usr/local/lib/libwebp -lossless 0 -compression_level 6 \
}}}
I'm afraid I've reached the limits of my ability to troubleshoot this
issue; posting here looking for some help!
--
Comment:
You don't have to compile webp yourself; there's already a port for it in
MacPorts. The maintainers of the ffmpeg port would just have to modify it
to use webp.
You should not set `LD_LIBRARY_PATH`. Any instructions you see advising
you to do so are probably for Linux and inapplicable to macOS.
--
Ticket URL: <https://trac.macports.org/ticket/70958#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list