蝸牛の歩み

蝸牛の如く,ゆっくりでも着実に前へ・・・

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