未知编码器“libx264”
Posted
技术标签:
【中文标题】未知编码器“libx264”【英文标题】:Unknown encoder 'libx264' 【发布时间】:2012-04-03 14:49:42 【问题描述】:我在 ubuntu11 上安装了 ffmpeg 0.8.9
./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libx264
当我运行它时
ffmpeg -y -i test.mp4 -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -vcodec libx264 -b 250k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 250k -maxrate 250k -bufsize 250k -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 320:240 -g 30 -async 2 a.ts
它说
未知编码器'libx264'
(注意:avconv
可能会出现同样的错误)
我该如何解决这个问题?谢谢!
【问题讨论】:
系统上是否安装了 x264(应该像 Ubuntu 上的“apt-get install libx264-dev”一样简单)? “ffmpeg -codecs”是否有 libx264 行? 但是,确切的潜在问题是什么?我在 /opt/lib "libx264.so" "libx264.so" 中有文件。 “libx264.a”。确切的问题一定是需要找到这些文件而不是(例如 opt/lib 不在 LD_LIBRARY_PATH 中) 【参考方案1】:我使用的是 Ubuntu 11.04,我也遇到了这个错误 - Unknown encoder 'libx264'
。安装包libavcodec-extra-53
解决了这个问题。
在 Ubuntu 14.04 LTS 中,所需的包称为 libavcodec-extra-54
(和 libav-tools
)
【讨论】:
也许我没有跟上更新,但在我的 Ubuntu 11.04 上我不得不安装 libavcodec-extra-52,53 不存在。 这个对我有用,可以在 x264 中获得 simplescreenrecorder 编码。 在 Ubuntu 13.10 (saucy) 中仍然是必要的(并且可以工作)。 为什么安装此软件包会删除大量已安装的编码器?这是否是编写 ffmpeg 和编写 avconv 之间令人恼火的争论的一部分? 同时是libavcodec-ffmpeg-extra56
(也就是libavcodec-extra
)【参考方案2】:
首先安装这些库
sudo apt-get install libfdk-aac-dev libass-dev libopus-dev \
libtheora-dev libvorbis-dev libvpx-dev libssl-dev
对于 Ubuntu 20.04 问题
sudo apt-get install nasm
并跳过此手动 nasm 安装...但截至 Ubuntu 17.04 sudo apt-get install nasm
不提供足够新的 nasm,因此请手动安装
在以下位置获取 nasm 的源代码 http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 然后下载最新的
cd ~/src/nasm-2.13.02 # update to release you just downloaded
./configure
make -j $(nproc)
sudo make install
那么对于 x264 :
git clone https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-static --enable-shared
make -j $(nproc)
sudo make install
对于 mp3 获取 LAME (libmp3lame)
sudo apt-get install libmp3lame-dev
或从http://lame.sourceforge.net/ v3.100 版手动安装,然后正常安装
cd lame-3.100/
./configure
make -j $(nproc)
sudo make install
最后下载ffmpeg源码并安装:
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-shared --enable-openssl
make -j $(nproc)
sudo make install
我感觉到你的痛苦,但这有效 - 在 Ubuntu 18.10 上仍然有效
【讨论】:
我试过这个,但最后一步的configure
给出了以下错误:“libfaac not found”
+1 - 这在 Mac OS Mavericks (10.9.4) 上对我有用。我正在努力尝试安装libx264
,以便它可以集成到FFMPEG
中大约2 小时。非常感谢!
--enable-libfaac
对我不起作用。不知道是不是一样,但是我用了这个参数--enable-libfdk-aac
,之前安装的是apt install libfdk-aac-dev
@jperelli cool now update ... 以上是 Ubuntu 17.04 的最新版本
x264 部分步骤中的错误 make -j8: filters/video/resize.c: In function 'pick_closest_supported_csp': filters/video/resize.c:215:30: error: 'AVComponentDescriptor aka const struct AVComponentDescriptor' 没有名为 'depth' 的成员 if( pix_desc->comp[i].depth > 8 ) ^ Makefile:277: recipe for target 'filters/video/resize.o' failed make: *** [ filters/video/resize.o] 错误 1【参考方案3】:
在使用 OpenAI Gym 时,我在 Ubuntu 18 中遇到了这个错误。您需要正确版本的 ffmpeg 和 x264 编码器。为了得到它们,我使用了以下方法并且成功了:
conda install x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge
【讨论】:
这个对我有用。我确实尝试从snap
安装ffmpeg,并且snap 确实启用了libx264
,但是一旦我安装了ffmpeg-python
,conda
再次自动安装ffmpeg
,自动安装的ffmpeg 禁用了libx264。因此,为这个特定版本安装带有 conda 的 ffmpeg 对我来说是唯一可行的解决方案。以上是关于未知编码器“libx264”的主要内容,如果未能解决你的问题,请参考以下文章
2023-03-07:x264的视频编码器,不用ffmpeg,用libx264.dll也行。请用go语言调用libx264.dll,将yuv文件编码成h264文件。
最简单的视频编码器:基于libx264(编码YUV为H.264)
Visual Studios 2010 中的 libx264 - Release Build 中的内存错误