2010年12月15日

[ubuntu-jp:3224] Re:Ubuntu 10.04 LTSでOpen Source Segmenterをコンパイルするとエラー発生

vine_userです。その後、進展がありましたので報告します。

下記のサイトに従って、最新版のffmpgeとx264を導入し、

<HOWTO: Install and use the latest FFmpeg and x264>
http://ubuntuforums.org/showthread.php?t=786095

さらに、

http://www.dezuintjes.com/blog/?p=66
の手順でsegmenterのコンパイルを行ったところ、下記のエラーが
出ました。

$ make
gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil
-lbz2 -lm -lz -lfaac -lmp3lame -lx264 -lfaad
segmenter.c: In function ‘main’:
segmenter.c:242: warning: ‘guess_format’ is deprecated (declared at
/usr/local/include/libavformat/avformat.h:957)
/tmp/ccVl9QSW.o: In function `main':
/home/vineuser/segmenter/segmenter.c:315: undefined reference to
`av_free_packet'
/home/vineuser/segmenter/segmenter.c:365: undefined reference to
`av_free_packet'
/home/vineuser/segmenter/segmenter.c:369: undefined reference to
`av_free_packet'
collect2: ld returned 1 exit status
make: *** [all] エラー 1

このエラー情報を元に調べたところ、下記の情報がありましたので、
http://bitsearch.blogspot.com/2010/03/iphone-http-streaming-encoder-and.html

segmenter.cのmain関数の直前に、下記のような関数「av_free_packet」の定義を
加えてコンパイルしたらうまくいきました。

void av_free_packet(AVPacket *pkt) {
if (pkt) {
if (pkt->destruct) pkt->destruct(pkt);
pkt->data = NULL; pkt->size = 0;
}}

恐らく、ffmpegの従来のソースではどこかで定義されているものが、最新版を手作業で
導入した場合には見つからないのでしょうね。

ちなみに、/usr/lib/libx264.so.85 は、残っていました。大塚さんが実行された環境と
は違うかも知れません。バックアップをとっておき、なくなってしまっている場合は、
コピーするという感じでしょうか。

いづれにしても「正しいやり方」とは言い難いような…
正しいかどうかは別にして、ffmpeg-0.5.3を使う方が無難なことは確かです。


--
ーーーーーーーー
Masahiko Yamaguchi
E-Mail: vineuser7 at gmail.com
Blog: 独学Linux http://blog.livedoor.jp/vine_user/


投稿者 xml-rpc : 2010年12月15日 09:56
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100761
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。