如何使用 ffmpeg 对 H.264 中的视频进行编码?

Posted

技术标签:

【中文标题】如何使用 ffmpeg 对 H.264 中的视频进行编码?【英文标题】:How to use ffmpeg to encode video in H.264? 【发布时间】:2016-09-01 04:23:48 【问题描述】:

我已经从https://github.com/FFmpeg/FFmpeg 安装了 ffmpeg 3.0,我正在尝试将使用 mepeg4 第 2 部分编码的视频转换为 H264,但我得到了Unknown encoder 'libx264' 错误

这是我的命令:(我尝试了 h264、x264、libx264,它们都不起作用)

ffmpeg -i Fashion.divx -acodec aac -vcodec libx264  out.mp4

我查看了支持的编解码器列表

Codecs:
 D..... = Decoding supported
 .E.... = Encoding supported
 ..V... = Video codec
 ..A... = Audio codec
 ..S... = Subtitle codec
 ...I.. = Intra frame-only codec
 ....L. = Lossy compression
 .....S = Lossless compression
 -------
 D.VI.. 012v                 Uncompressed 4:2:2 10-bit

这里是h264:

 D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau)

我用的是ffmpeg 3.0,从那个列表看,好像不支持h264编码,只支持解码h264吧?

我尝试通过本指南启用 h.264 How to quickly compile FFmpeg with libx264 (x264, H.264)

./configure --enable-gpl --enable-libx264

我明白了 ./configure --enable-gpl --enable-libx264

ERROR: libx264 not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.

我应该怎么做才能使 h.264 中的视频编码工作?

【问题讨论】:

您链接的快速编译指南中的第 1 步:编译 x264 是的,我刚发现需要单独安装libx264,谢谢。 【参考方案1】:

好的,我刚发现需要单独安装libx264,命令如下

sudo apt-get install yasm libvpx. libx264.

确实在安装 libx264 后,我得到了

 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb )

【讨论】:

【参考方案2】:

呵呵,你已经回答了自己的问题:

这里是h264:

 D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau)

如清单所示,编码器的名称是h264,编解码器的名称可以在大括号之间找到。

所以你的命令应该是这样的:

ffmpeg -i Fashion.divx -acodec libfaac -vcodec h264  out.mp4

我的 FFmpeg 版本有 libx264,所以 -codecs 选项打印我这个:

DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 libx264rgb )

如您所见,我可以使用-vcodec libx264-vcodec libx264rgb

【讨论】:

以上是关于如何使用 ffmpeg 对 H.264 中的视频进行编码?的主要内容,如果未能解决你的问题,请参考以下文章

调用FFmpeg SDK对H.264格式的视频压缩码流进行解码

使用 ffmpeg 将视频转换为 MP4 (H.264/AAC)

如何让你的Ubuntu 14.04支持H.264视频

ffmpeg 使用 Nvidia 硬件编码器编码 H.264

如何利用ffmpeg将一小段视频截取成图片

音视频开发中如何使用ffmpeg 一帧H264解码YUV420P?