FFmpeg avcodec_find_encoder problem

I am new to ffmpeg.

my problem is: " avcodec_find_encoder (CODEC_ID_H264); func always returns 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, the configuration contains --enable-libx264

so i think avcodec_find_encoder (CODEC_ID_H264); need 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

 gcc -o test test.c -lavutil -lavformat -lavcodec -lx264 -lz -lm 

thanks

+4
source share
3 answers

calling avcodec_register_all() solved this for me.

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

+9
source

After your setup, I found that h264 is not contained in the allowed ffmpeg codes, while it is contained in the allowed ffmpeg decoders. Perhaps the reason "avcodec_find_encoder (CODEC_ID_H264)" is not working. He is connected.

+1
source

Be sure to call the following 2 functions.

  /* must be called before using avcodec lib */ avcodec_init(); /* register all the codecs */ avcodec_register_all(); 
0
source

Source: https://habr.com/ru/post/1335778/


All Articles