linux編譯ffmpeg
『壹』 在linux下用bfin-uclinux-gcc交叉編譯ffmpeg報錯,是什麼問題
這個是抱怨沒有main函數的意思
如果你要編譯共享庫,請確認使用了正確的編譯選項
如果要編譯可執行程序,請提供main函數。
『貳』 如何安裝linux系統下的ffmpeg
linux下安裝ffmpeg1、下載ffmpeg。2、解壓tar xvfj ffmpeg-0.11.1.tar.bz2得到解壓後的目錄是ffmpeg-0.11.13、配置 ./configure --enable-shared --prefix=/usr/local/ffmpeg其中:--enable-shared 是允許其編譯產生動態庫,在以後的編程中要用到這個幾個動態庫。--prefix設置的安裝目錄。4、編譯並安裝makemake install5、安裝之後在/usr/local/ffmpeg會看到有四個目錄lib 動態鏈接庫位置include 編程要用到頭文件bin 執行文件所在的目錄 share6、為了以後方便編程,我們把lib中的三個鏈接庫libavcodec.so libavformat.so libavutil.so復制到/usr/lib下。把include目錄下的ffmpeg目錄復制到/usr/include下。執行bin目錄下的ffplay,可以去播放音頻或者視頻文件。例如播放1.mp3./ffplay 1.mp3 另外,bin目錄下還有兩個文件:ffmpeg和ffserverffmpeg是一個很好的視頻和音頻的格式轉化工具。網上有很多它的說明文檔。如果不想生成ffserver,只要在./configure的時候加--disable-ffserver即可。7、編程如果寫了一個test.c文件,要包含ffmpeg的頭文件,可以這樣寫:#include 編譯:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第6步的操作)如果沒有第6部的操作,則編譯的時候如下: gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil編譯成功之後,執行的時候還是需要動態庫的支持,還是要把那三個動態庫文件復制到/usr/lib或者/lib中,不然執行的時候會說找不到動態庫鏈接。還有一個方法可以解決這個問題,就是把/usr/local/ffmpeg/lib這個目錄加入到/etc/ld.so.config中,然後執行ldconfig,或者重啟電腦,這樣執行的時候系統就可以從/usr/local/ffmpeg/lib這個目錄下去找這三個動態庫文件了。以上的方式是採用動態庫編譯ffmpeg的,如果在configure的時候不加上--enable-shared的,則採用靜態鏈接的方式,不會生成那三個動態庫。同時生成的ffplay、ffmpeg的執行文件也比較的大,因為他們不需要動態庫的支持,就可以執行。但是不利於再次開發,所以我採用動態鏈接的方式。configure中還有很多的選項,可以通過./configure --help查看,也可以直接查看configure文件。這在配置的時候很重要。
『叄』 ffmpeg在window下編譯和linux下編譯的不同
你是哪個系統下用的?Windows和Linux下都有直接拿來用的。 另外還要看你干什麼用,你的要求特殊一些的話是需要編譯的,有的功能默認沒有開啟。一般情況下直接就用了啊,不需要編譯的。Linux下也是用安裝命令安裝一下就好了,極其簡單。
『肆』 linux下編譯ffmpeg時關於configure的問題.
你准備工作沒做好吧!!
先編譯安裝Yasm。
然後編譯安裝H.264 (也就是x264)。
再編譯安裝AAC audio encoder (fdk-aac)。
編譯安裝libmp3lame (MP3 audio encoder)。
編譯安裝libopus (Opus audio decoder and encoder)。
編譯安裝libvpx (VP8/VP9 video encoder and decoder)。
做後編譯安裝ffmpeg。
其中1-6你可以選擇編譯安裝,也可以使用源直接安裝。安裝後了再編譯安裝ffmpeg
你使用 sudo ldconfig -p |grep libx264 看看你的libx264是否正確安裝.
你編譯安裝x264的時候可以使用2中方式都安裝。
先
cd ../x264
./configure --enable-shared
make
make install
最後
cd ../x264
make distclean
./configure --enable-static
make
make install
『伍』 linux ffmpeg 怎麼編64位
1、下載ffmpeg。
下載網址:http://www.ffmpeg.org/download.html
2、解壓縮
tar -zxvf ffmpeg-2.0.1.tar.gz
3、配置,生成Makefile
./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg
如果執行結果不對,可以根據提示信息,並查看幫助,解決問題
./configure --help
4、編譯安裝
make
make install
5、安裝之後在/usr/local/ffmpeg會看到有三個目錄
bin 執行文件目錄
lib 靜態,動態鏈接庫目錄
include 編程用到的頭文件
為了防止執行程序找不到庫文件,
可以將/usr/local/ffmpeg/lib目錄設置到LD_LIBRARY_PATH環境變數,
或者查看/usr/local/ffmpeg/lib下所有的鏈接,並在/usr/lib下建立同樣的鏈接。如下。
ln -s /usr/local/ffmpeg/lib/libavcodec.so /usr/lib/libavcodec.so
ln -s /usr/local/ffmpeg/lib/libavdevice.so /usr/lib/libavdevice.so
ln -s /usr/local/ffmpeg/lib/libavfilter.so /usr/lib/libavfilter.so
ln -s /usr/local/ffmpeg/lib/libavformat.so /usr/lib/libavformat.so
ln -s /usr/local/ffmpeg/lib/libavutil.so /usr/lib/libavutil.so
ln -s /usr/local/ffmpeg/lib/libswresample.so /usr/lib/libswresample.so
ln -s /usr/local/ffmpeg/lib/libswscale.so /usr/lib/libswscale.so
ln -s /usr/local/ffmpeg/lib/libavcodec.so /usr/lib/libavcodec.so.55
ln -s /usr/local/ffmpeg/lib/libavdevice.so /usr/lib/libavdevice.so.55
ln -s /usr/local/ffmpeg/lib/libavfilter.so /usr/lib/libavfilter.so.3
ln -s /usr/local/ffmpeg/lib/libavformat.so /usr/lib/libavformat.so.55
ln -s /usr/local/ffmpeg/lib/libavutil.so /usr/lib/libavutil.so.52
ln -s /usr/local/ffmpeg/lib/libswresample.so /usr/lib/libswresample.so.0
ln -s /usr/local/ffmpeg/lib/libswscale.so /usr/lib/libswscale.so.2
這時就需要在/etc/ld.so.conf下面加一行/usr/local/ffmpeg/lib,保存過後ldconfig一下,
這時就需要在/etc/ld.so.conf下面加一行/usr/local/MySQL/lib,保存過後ldconfig一下,
6、編譯測試程序
gcc -o ffmpegtest ffmpegtest.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil
7、執行程序
./ffmpegtest
或直接執行/usr/local/ffmpeg/lib目錄下的./ffmpeg進行測試。
『陸』 linux 編譯 ffmpeg 怎麼沒有ffplay
在cygwin軟體包中安裝 ar 這個軟體包。 或者下載ar.exe放在c:/windows/ar.exe 中就能繼續編譯了
『柒』 linux下,編譯ffmpeg時如果不裝支持庫會出現什麼結果
分什麼支持庫。
如果你要h264編碼。那你必須下載x264.然後
configure時候 指定一下。
否則不會出錯。
直接configure
make
make install
good luck to you.
『捌』 ffmpeg在linux編譯之後,測試自己寫的函數為什麼老是提示 undefined reference to avcodec_init 這樣的問題
首先確認avcodec庫已經編譯出來了,而且連接的時候要加上路徑,不然肯定找不到