[ubuntu-jp:3224] Re: Ubuntu 10.04 LTSでOpen Source Segmenterをコンパイルするとエラー発生
Masahiko Yamaguchi
vineuser7 @ gmail.com
2010年 12月 15日 (水) 00:56:51 GMT
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/
ubuntu-jp メーリングリストの案内