在 Ubuntu 10.04 上,我尝试使用以下 ffmpeg 命令将原始视频(YUV 格式)编码为 H.264 编码视频:
ffmpeg -i input.mp4 output.h264
但我收到错误说
输出流 #0.0 的编解码器不受支持
然后当我尝试这个选项时:
ffmpeg -i input.mp4 -formats h264 output.h264
它仍然没有编码。
现在我明白了 ffmpeg 使用 libx264 来编码为 H.264 格式。现在我已经在这个 Ubuntu 上安装了 x264 - fast H.264 编码器包。
我的问题:
- ffmpeg 需要的这个 libx264 和 x264 程序有关系吗?
- 如何安装 libx264 并让 ffmpeg 使用它来允许我将视频编码为 H.264 格式?
答案1
首先,您使用的这些命令在语法上看起来不正确。为了让 ffmpeg 使用 x264,您需要提供参数-c:v libx264
。
现在,如果您有一个原始 YUV 文件,您需要告诉 ffmpeg 使用哪种像素格式、哪种尺寸等:
ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 output.mp4
根据 YUV 文件的规格更改这些。查看ffmpeg -pix_fmts
支持的像素格式列表。fourcc.org也是一个很好的资源。
如果您只想要文件中的原始 H.264 比特流.264
:
ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 -f rawvideo output.264
答案2
ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 23.976 -i raw_i420_1920_1080 -vcodec libx264 -f rawvideo 输出.264
-vcodec
告诉它使用哪个编解码器。man ffmpeg
将帮助您了解更多信息。