如何在 macos 上为 ffmpeg 启用 libx264
Posted
技术标签:
【中文标题】如何在 macos 上为 ffmpeg 启用 libx264【英文标题】:how to enable libx264 for ffmpeg on macos 【发布时间】:2020-12-26 20:29:12 【问题描述】:我正在运行一个运行 ffmpeg 的代码,但由于 libx264 而崩溃并出现以下错误:
未知编码器'libx264'
File "/anaconda3/lib/python3.6/site-packages/imageio/plugins/ffmpeg.py", line 661, in _append_data
self._proc.stdin.write(im.tostring())
BrokenPipeError: [Errno 32] Broken pipe
于是我将ffmpeg升级到最新,看到libx264安装如图:Using Brew on MacOs
==> Pouring x264-r3027_1.high_sierra.bottle.tar.gz
/usr/local/Cellar/x264/r3027_1: 11 files, 5.5MB
但是当我这样做时
ffmpeg encoders | grep 264
我在最后一行得到--disable-libx264:
ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
built with clang version 4.0.1 (tags/RELEASE_401/final)
configuration: --prefix=/anaconda3 --cc=x86_64-apple-darwin13.4.0-clang --disable-doc --enable-shared --enable-static
--enable-zlib --enable-pic --enable-gpl --enable-version3 --disable-nonfree --enable-hardcoded-tables --enable-avresample --enable-libfreetype --disable-openssl --disable-gnutls --enable-libvpx --enable-pthreads --enable -libopus --enable-postproc --disable-libx264
似乎我必须将 --disable-libx264 更改为 --enable-libx264 但不确定在哪里以及如何完成。在 /anaconda3 下找不到它,因为:--prefix=/anaconda3
【问题讨论】:
【参考方案1】:我删除了 Brew,改为运行 conda install ffmpeg 并在那里启用。
【讨论】:
【参考方案2】:如果您使用 Conda 安装 x264 和 ffmpeg,您需要今天(将来可能会更改)指定要安装的版本。例如,这种组合对我来说效果很好:
$ conda install -c conda-forge x264=='1!161.3030' ffmpeg=4.3.2
如果我现在运行命令ffmpeg
,我可以看到我有标志--enable-libx264
。完整的输出是:
$ ffmpeg
ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
built with clang version 11.1.0
configuration: --prefix=/Users/vincent/opt/anaconda3/envs/test2 --cc=x86_64-apple-darwin13.4.0-clang --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-gpl --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-libx264 --enable-pic --enable-pthreads --enable-shared --enable-static --enable-version3 --enable-zlib --enable-libmp3lame --pkg-config=/Users/runner/miniforge3/conda-bld/ffmpeg_1627813741069/_build_env/bin/pkg-config
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... [outfile options] outfile...
我猜这个问题来自于今天默认安装的 ffmpeg 版本(写这篇文章的时候)。事实上,如果在新创建的虚拟环境中我安装 x264 和 ffmpeg 而不指定要使用的版本,我会得到 x264 1!161.3030
和 ffmpeg 4.0
。使用较新版本的 ffmpeg 似乎可以解决问题。
我们的想法是使用兼容的软件包版本。为了创建我上面建议的安装行,我只是指定了 x264 和 ffmpeg 包的 conda-forge 上可用的最新版本。要获取 x264 和 ffmpeg 的可用 Conda 包列表,只需使用:
conda search -c conda-forge -f x264
conda search -c conda-forge -f ffmpeg
【讨论】:
以上是关于如何在 macos 上为 ffmpeg 启用 libx264的主要内容,如果未能解决你的问题,请参考以下文章
如何在 macOS 上为 IntelliJ 项目安装 Google OR-Tools
如何在 MacOS (sierra-catalina) 上为分区获取可用空间
如何在 MacOS 12 上为 php 7.1 安装 mcrypt 扩展以进行 Laravel 开发?