VLC contribのffmpegコンパイル

2413 ワード

VLCはデフォルトでRTMPをサポートしており、trace codeはプロトコル関連codeがlibavformatにあることを発見した.囧..もうbuild ffmpegするしかない.
VLCの公式はまた、build contribの方法は以下の通りです.
% cd contrib
% mkdir native
% cd native
% ../bootstrap
% make
しかし、この方法はすべてのサードパーティライブラリをdownloadしてbuildを試し、buildに遭遇しやすいが、多くの必要もある.
何度も試してみると、make listがlistで出てくるパッケージがbuildが必要に設定されていることがわかりました.
手動で指定する方法は、make PKGS_です.ENABLE=ffmpeg !!!
何か小さな問題があったら、何か足りないものがあれば、直接修理すればいいです.
更にvlc来buildに戻って、最後にclewn来gdb、断点が止まることを発見しました~~
clewnデバッグ:
% clewn
(gdb)  file vlc
(gdb)  break main
(gdb)  break rtmp_open
Function "rtmp_open" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
(gdb)  run
(gdb) ...


以下は廃棄されました.
ffmpegが最も困っているのは、バージョンが既存の不matchと通じないことを恐れていることだ.
compile vlcの時のこの文を覚えていますか?
$ sudo apt-get build-dep vlc

次に、libavformatのバージョンを決定します.
$ apt-cache showsrc PACKAGE_NAME   | grep libavformat
> libavcodec-dev (>= 4:0.6), libavformat-dev (>= 4:0.6)

可坑的是4:0.6又是什麽版!!公式サイトと全然合わないよ!やはり>=ですね!
Googleはこの4:0.6のcodeに着いたが、全然使えないよ. https://launchpad.net/ubuntu/+source/ffmpeg/4:0.6.1-5ubuntu2
公式サイトの最新release tarballがこんなに長いので、56:15.102ではないでしょうか.
libavutil      54. 15.100
libavcodec     56. 13.100
libavformat    56. 15.102
libavdevice    56.  3.100
libavfilter     5.  2.103
libavresample   2.  1.  0
libswscale      3.  1.101
libswresample   1.  1.100
libpostproc    53.  3.100

まあ、ここの制限を考えると>=4:0.6で、
そして昨日の痛みを忘れないでください:configure configure:error:libavcodec versions 56 and later are not supported yet!!
じゃ、release 55を持ってきます.の
http://www.ffmpeg.org/download.html#get-sources
捕まえて解凍した後、build static lib cmdだけは? 
$ ./configure --prefix=PREFIX  --enable-static --disable-shared  --disable-yasm
$ make  install-libs install-headers

過ぎた!!わくわくする
 
急いでVLCに戻ります:
$ make  clean; make 2>&1 | tee make.log