我正在尝试使用Linux Mint LMDE上的libavcodec解码H264。 我安装了ffmpeg,libavcodec-dev和libx264-dev,但是在我自己的程序中,库仍然无法识别H264编解码器。
但是,ffplay在h264流上运行良好。
以下是我的工作:
avcodec_find_decoder(AV_CODEC_ID_H264);
并返回NULL。
为什么不找到编解码器?我该怎么做才能让它发挥作用?
我宁愿不重新编译libavcodec,因为这意味着我必须稍后在我的程序中静态链接它。
以下是ffmpeg的版本信息:
ffmpeg -version ffmpeg version 2.1.1建于2013年11月20日08:04:32 用gcc 4.8(Debian 4.8.2-5)配置: - prefix = / usr --extra-cflags =' - g -O2 -fstack-protector --param = ssp-buffer-size = 4 -Wformat -Werror = format-security' - extra-ldflags =' - Wl,-z,relro' --cc ='ccache cc' - enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid - enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable -stripping --enable-libvpx --enable-libschroedinger --disable-encoder = libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo- aacenc --disable-decoder = amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir = / usr / lib / x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio - -enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mip sdspr2 --enable-libvidstab --enable-libzvbi --enable-libiec61883 --enable-libfdk-aac --enable-vaapi --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 - disable-vis --shlibdir = / usr / lib / x86_64-linux-gnu libavutil 52. 48.101 / 52. 48.101 libavcodec 55. 39.101 / 55. 39.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 90.100 / 3. 90.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52。 3.100
答案 0 :(得分:0)
我碰巧忘了打电话了
avcodec_register_all();
当然,libavcodec找不到任何可用的编解码器。