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


10

在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-快速H.264编码器。

我的问题:

  1. ffmpeg需要的这个libx264与x264程序之间是否有任何关系?
  2. 如何安装libx264并让ffmpeg使用它使我可以将视频编码为H.264格式?

那您之前的问题又如何解决呢?ffmpeg用法将视频编码为H264编解码器格式
slhck 2011年

@slhck-谢谢,但是,当我使用时:-ffmpeg -s 352x240 -i 352x240_420.yuv -vcodec libx264 out.mp4。它给出了错误-“未知编码器'libx264'”。任何其他指针。libx264是否与x264库或其他相同。
goldenmean 2011年

关于在Linux上编译ffmpeg和x264,请参见此处:ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
slhck 2013年

Answers:


11

首先,您使用的那些命令在语法上看起来不正确。为了使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还是一个很好的资源。

如果只想在.264文件中使用原始H.264比特流,请执行以下操作:

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 -f rawvideo output.264

-1

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 23.976 -i raw_i420_1920_1080 -vcodec libx264 -f rawvideo output.264

-vcodec告诉它使用哪个编解码器。man ffmpeg将帮助您了解更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.