2012-03-02 25 views
2

私はこの例を使ってビデオで作業しようとしています: 'An ffmpeg and SDL Tutorial'。 コンパイラは私にこう伝えます: 未定義の `avcodec_decode_video 'への参照。Ffmpeg: `avcodec_decode_video 'への未定義の参照

avcodec_decode_videoをavcodec_decode_audio3 に変更しました(この機能はffmpeg/avcodec.hにあります)。 しかし、それは動作しません、なぜ私は理解していません。あなたはこの問題をどのように修正するのか知っているかもしれません

+0

をあなたは 'ffmpegのにコンパイルlibavcodec'を持っていますか? – Oded

+0

はい、私はこのlibを持っています。 – Iva

答えて

2

リンクされたチュートリアルでは、最新ではないと規定されています。実際、FFmpegのAPIは書かれて以来進化してきました。この記事の執筆時点でのFFmpegのgit HEADでは、ビデオとオーディオをデコードするためのパブリック関数は、それぞれavcodec_decode_video2()とavcodec_decode_audio4()です。

avcodec_decode_video()にavcodec_decode_audio3()を代入しようとしました。 1つの機能がオーディオをデコードし、もう1つがビデオを再生するため、機能しません。最近のバージョンのFFmpegを使用していると仮定して、avcodec_decode_video2()を使ってビデオのデコードを試みてください。また、FFmpegのソースツリーのdoc/examplesの中で、より最新のものでなければならない例を見てください。

0

あなたはライブラリにリンクする必要があります。

gcc -o main.o main.c `pkg-config --cflags --libs libavformat libavutil`