简体   繁体   English

Linux Mint LMDE ffmpeg h264

[英]Linux Mint LMDE ffmpeg h264

I'm trying to decode H264 using libavcodec on Linux Mint LMDE. 我正在尝试在Linux Mint LMDE上使用libavcodec解码H264。 I installed ffmpeg, libavcodec-dev and libx264-dev but the H264 codec is still not recognized by the library in my own program. 我安装了ffmpeg,libavcodec-dev和libx264-dev,但是在我自己的程序中,该库仍无法识别H264编解码器。

However, ffplay works fine on a h264 stream. 但是,ffplay在h264流上可以正常工作。

Here is what I do : 这是我的工作:

avcodec_find_decoder(AV_CODEC_ID_H264);

and it returns NULL. 并返回NULL。

Why doesn't it find the codec ? 为什么找不到编解码器? What should I do to make it work ? 我应该怎么做才能使其正常工作?

I'd rather not recompile libavcodec because it would mean I would have to link it statically later on in my program. 我宁愿不重新编译libavcodec,因为这意味着我稍后必须在程序中静态链接它。

Here is the version information of ffmpeg : 这是ffmpeg的版本信息:

ffmpeg -version ffmpeg version 2.1.1 built on Nov 20 2013 08:04:32 with gcc 4.8 (Debian 4.8.2-5) configuration: --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-opens ffmpeg -version ffmpeg 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-打开 sl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --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 sl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --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

I simply happened to have forgotten to call 我只是碰巧忘了打电话

avcodec_register_all();

So of course libavcodec wouldn't find any codec available. 因此,当然libavcodec不会找到任何可用的编解码器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM