ffmpegの古いrevisionのmake
一昨日の話の続き。試行錯誤のメモなので「続きを読む」で。
$ svn update -r 9133
などとやれば、指定したrevisionのソースが入手できる。しかし、makeの途中でエラーが発生する。以前コンパイルできたrevisionでもエラーになる。何が違うのだろうと思ったら、どうやら「external」のrevisionが新しすぎるようだ。確かにexternalというのがsvn updateしたときに出てきて、ちょっと気にはなっていたのだ。
Fetching external item into 'libswscale' Updated external to revision 29770. Updated to revision 9133.
つまり、svn updateすると'libswscale'も一緒にupdateされて最新のものになってしまうようだ(see Subversionのsvn:externalsというプロパティ)。このためにffmpegとlibswscaleで整合性がなくなってmakeできなくなっている?
ということで、(正しいかやり方かどうかは知らないが)libswscaleの方も古いrevisionに戻してやることにした。いつの時点に戻すかというと、ffmpeg/.svn/entriesに書かれているcommitted-dateを指定した。
$ svn update -r 9133 $ cd libswscale $ svn update -r "{2007-05-27T08:06:45.294630Z}"
これで確かに以前makeできたrevisionはmakeできるようになった。
revision 9133
makeが途中でエラーになる。
make[1]: *** No rule to make target `jpeg_ls.c', needed by `mjpeg.o'. Stop. make: *** [lib] Error 2
jpeg_ls.cは存在しない(cvslogによるとr9021でなくなっている)。代わりにjpegls.cがある。そこで、libavcodec/.dependの"jpeg_ls.c"を"jpegls.c"に書き換え。
次は
texi2html -monolithic -number doc/ffmpeg-doc.texi mv ffmpeg-doc.html doc/ffmpeg-doc.html mv: ffmpeg-doc.html: No such file or directory make: *** [doc/ffmpeg-doc.html] Error 1
ドキュメントのエラーは割とどうでもいいのでMakefileの関係しそうなところを適当にコメントアウト。これでmakeが通った。
revision 13283
一昨日と変わらず。Makefileの書き換え方も分からず。
revision 11121
適当に中間を取ってみた。ドキュメント以外makeできた。
おすすめは
こんな情報があった。revision 11000がいいよ、とのこと。
I am using GCC 3.3 on Mac OS 10.3.9 also. I have tried very hard to make the latest builds of ffmpeg to compile. But they didn't work. I did eventually make ffmpeg compile, but the result was all the converted videos displayed a green screen. The only way I think you will make ffmpeg work is by using an older revision. The revision might be a little old, but it is still very functional. I suggest revision 11000.
Lurker - Database message source pull failure