使用 ffmpeg 将原始视频编码为 H.264 格式

使用 ffmpeg 将原始视频编码为 H.264 格式

在 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 编码器包。

我的问题:

  1. ffmpeg 需要的这个 libx264 和 x264 程序有关系吗?
  2. 如何安装 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将帮助您了解更多信息。

相关内容