我已经安装了 x262 库,然后使用这些命令将 ffmpeg 安装到 /var/www/html/GetVideo 目录中。
# build and install x264
git clone --depth 1 git://git.videolan.org/x264
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
make -j 4
sudo make install
# build and make ffmpeg
git clone --depth=1 git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
make -j4
sudo make install
所以,我有一个 /var/www/html/GetVideo/x264 库和 /var/www/html/GetVideo/x264/ffmpeg 目录。
然后我安装了 libav 编解码器
sudo apt-get install libavcodec-extra-54
然后我尝试改变帧大小和帧速率。
ffmpeg -i /var/www/html/GetVideo/video/20180503145826-8849_1080.mp4 -acodec libvo_aacenc -vcodec libx264 -s 1920x1080 -r 60 -strict experimental /var/www/html/GetVideo/video/output.mp4
尽管我已经安装了 libav 编解码器,但仍然收到未知编码器“libvo_aacenc”错误。我不知道我遗漏了什么?我该如何调整视频大小?
答案1
FFmpeg 不再支持 libvo_aacenc
它是一个低质量编码器,只能编码最多两个通道。内置的 FFmpeg AAC 编码器已得到改进,不再需要 libvo_aacenc,因此支持libvo_aacenc 已从 FFmpeg 中删除。
使用最新的版本ffmpeg
并使用内置 AAC 编码器。因此不要-acodec libvo_aacenc
使用-acodec aac
(或-c:a aac
)。
你不能只安装编解码器并假设ffmpeg
可以使用它们
如果您要编译,安装libavcodec-extra-54
不会执行任何操作ffmpeg
。编译时,要添加对外部编解码器库的支持,您需要:
- 安装相关-dev软件包。例如libx264-dev用于 H.264 视频编码。
- 使用 中的适当
./configure
选项来启用它ffmpeg
,例如--enable-libx264
。请参阅./configure --help
了解受支持的外部编解码器库列表。 - 编译
ffmpeg
。
如果你想编译,请参阅FFmpeg Wiki:针对 Ubuntu 进行编译以获得分步指南。
但是,安装libavcodec-extra-54将从存储库中添加其他编解码器ffmpeg
(我不再确定哪些其他编解码器)。
你为什么要编译?
ffmpeg
在 Ubuntu 存储库中可用。为什么不直接使用它呢?
sudo apt-get install ffmpeg
如果缺少某些功能,您可以考虑编译。
我如何调整视频大小?
现在来解决你的实际目标。通过“调整大小”,我假设你想缩放视频。这是一个使用比例过滤器:
ffmpeg -i input.mp4 -c:v libx264 -c:a copy -vf scale=1920:1080 output.mp4
在这个例子中,音频被流已复制因为输入和输出都是 MP4,并且音频可能已经是 AAC,所以只需复制它而不是重新编码。