ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法

     基于Cygwin平台,在Eclipse上建立C project,使用FFmpeg开源库进行视频编解码工作。可以将H.264编码格式的视频解码成YUV数据。但是对YUV数据编码为H.264时遇到了问题,使用FFmpeg提供的示例程序,报错AV_CODEC_ID_H264 Codec notfound. 使用avcodec_find_encoder(AV_CODEC_ID_H264)测试,返回结果总是NULL。FFmpeg没有H264编码器。

     ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第1张图片

      需要附带x264。先编译x264,然后整合到FFmpeg中。

1、x264源码下载地址

   http://download.videolan.org/pub/videolan/x264/snapshots/

   参考链接

   http://blog.csdn.net/wutong_login/article/details/6677848#comments


   选择下载一个版本的x264。如x264-snapshot-20150625-0011-stable.tar.bz2。

    ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第2张图片

 

x264编译

参考链接

   http://blog.csdn.net/najiutan/article/details/36171997

   CFLAGS="-fPIC"./configure --enable-static --disable-opencl --disable-asm

   ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第3张图片

   make

    ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第4张图片

   make install

   ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第5张图片

   配置安装ffmpeg。在配置信息中一定要加入“--enable-libx264”,连接x264。

   ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第6张图片

      配置命令为“$CFLAGS="-fPIC" ./configure--enable-shared --enable-libx264 --disable-yasm --prefix=/usr/local/ffmpeg”时提示找不到libx264。需要指定x264库的路径。之前编译的x264默认在/usr/local下面,添加“--extra-cflags=-I/usr/local/include--extra-ldflags=-L/usr/local/lib”用来寻找x264库。

      完整命令为“$CFLAGS="-fPIC" ./configure--enable-shared --enable-libx264 --disable-yasm--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib--prefix=/usr/local/ffmpeg”。

    ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第7张图片

   make

   ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第8张图片

   make  install

   ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第9张图片


   因为之前安装过FFmpeg,环境变量等没变,就不用重新配置了。

   使用程序进行H264编码,可以了。

    ffmpeg视频编码AV_CODEC_ID_H264 Codec not find解决方法_第10张图片

 

你可能感兴趣的:(cygwin,ffmpeg)