我是新来的。
我的问题是"avcodec_find_encoder(CODEC_ID_H264);“函数总是返回null.
以下是我的ubuntu系统中的ffmpeg配置。
./ffmpeg
FFmpeg version SVN-r26306, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 11 2011 10:34:49 with gcc 4.4.5
configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 0 / 0.16. 0
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.92. 0 / 52.92. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.72. 0 / 1.72. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0如您所见,配置包含--启用-libx264 264。
所以我认为avcodec_find_encoder(CODEC_ID_H264);必须返回一些不为空的东西.请告诉我如何解决这个问题?
在我的程序中调用avcodec_init()和av_register_all()。
当我编译我的测试程序时,使用下面的
gcc -o test test.c -lavutil -lavformat -lavcodec -lx264 -lz -lm谢谢
发布于 2012-11-13 12:02:27
打电话给avcodec_register_all()帮我解决了这个问题。
在windows 7上使用msvc10和FFmpeg版本: 2012-11-05 git-c995644
发布于 2011-10-21 21:40:14
配置之后,我发现h264不包含在ffmpeg的启用编码器中,而包含在ffmpeg的启用解码器中。也许这就是"avcodec_find_encoder(CODEC_ID_H264)“不起作用的原因。是有线的。
发布于 2012-02-25 12:22:36
确保调用了以下两个函数。
/* must be called before using avcodec lib */
avcodec_init();
/* register all the codecs */
avcodec_register_all();https://stackoverflow.com/questions/4709393
复制相似问题