开发者

FFmpeg avcodec_find_encoder problem

I'm newbie in ffmpeg.

my problem is "avcodec_find_encoder(CODEC_ID_H264);" func always returning null.

ffmpeg configure is below on my ubuntu system.

./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

as you can see, configuration contains --enable-libx264

so I think avcodec_find_encoder(CODEC_ID_H264); have to return something not null... please let me know how to solve this problem?

ps) I call avcodec_init() and av_register_all() in my program.

when I compile my test program, using below

开发者_StackOverflow中文版
gcc -o test test.c -lavutil -lavformat -lavcodec -lx264 -lz -lm

thanks


calling avcodec_register_all() solved it for me.

using msvc10 over windows 7 with FFmpeg version: 2012-11-05 git-c995644


After your configure, I find that h264 is not contained in the the enabled encoders of ffmpeg, while it is contained in the enabled decoders of ffmpeg. Maybe that's the reason why "avcodec_find_encoder(CODEC_ID_H264)" does not work. It's wired.


Make sure following 2 functions were called.

  /* must be called before using avcodec lib */
  avcodec_init();

  /* register all the codecs */
  avcodec_register_all();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜