額...這還是兩年前的一篇文章搔扁,Mac平臺(tái)編譯FFMpeg践啄,網(wǎng)上資料比較少赚哗,當(dāng)時(shí)也編譯成功了她紫,拿來(lái)記錄下吧。
2013.03.24
RTCP+RTP+FFmpeg+H.264等相關(guān)的資料和網(wǎng)站
網(wǎng)站:
ChinaVideo
myException.cn
FFmpeg技術(shù) (這個(gè)好S齑ⅰ)
RTP Payload Format for H.264 Video
國(guó)內(nèi)開發(fā)者寫的那些既不認(rèn)真又不負(fù)責(zé)的狗屎技術(shù)博客真特么惡心贿讹!寫的不明不白,是在炫耀自己的技術(shù)能力么@┧围详?既然幫不到別人朴乖,寫那些狗屁技術(shù)博客有什么用祖屏?這兩天查找TCP+H.264的資料,尤其是H.264流分析的資料买羞,查的一頭霧水袁勺,各不相同還各說(shuō)各的,百家講壇靶笃铡期丰!尼瑪!最后找了篇老外的文章算是明白H.264咋回事了3蕴簟钝荡!再次鄙視國(guó)內(nèi)那些寫技術(shù)博客只是為了單純炫耀技術(shù)能力而幫不到比人的那些個(gè)開發(fā)者!鄙視舶衬!強(qiáng)烈鄙視埠通!
How to process raw UDP packets so that they can be decoded by a decoder filter in a directshow source filter
博文:
視頻流傳輸協(xié)議RTP/RTCP/RTSP/HTTP的區(qū)別
終端模擬rtsp回話過(guò)程
使用AsyncSocket實(shí)現(xiàn)RTSP協(xié)議
FFMpeg 中比較重要的函數(shù)以及數(shù)據(jù)結(jié)構(gòu)
Stack OverFlow上一個(gè)大牛的解釋
編譯FFmpeg太特么費(fèi)勁了,網(wǎng)上帖子雜且亂逛犹!那些教程按照步驟要么走不下來(lái)端辱,要么走下來(lái)也編譯失敗虽画!搞不明白舞蔽,寫這樣的帖子有什么意義!码撰?
還是老外寫教程比較認(rèn)真負(fù)責(zé)渗柿,國(guó)內(nèi)開發(fā)者啊,真的應(yīng)該向老外好好學(xué)習(xí)脖岛!
How to Prepare Your Mac for iOS Development with FFmpeg Libraries
現(xiàn)在記錄一個(gè)剛遇到并解決的問(wèn)題:(2013.03.19晚 )
sudo port install pkgconfig
錯(cuò)誤
第五步朵栖,終端輸入
sudo port install pkgconfig
砾省,遇到問(wèn)題:提示說(shuō)安裝的Xcode版本太低,這明顯是個(gè)誤報(bào)混槐,因?yàn)槲野惭b的Xcode版本是4.5.2编兄,根據(jù)提示終端輸入
sudo xcode-select --print-path
顯示路徑為:這是哪?Volumes声登?我也不知道**解決:
**
終端輸入
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer”
然后再終端執(zhí)行:sudo port install pkgconfig
狠鸳,發(fā)現(xiàn)沒(méi)問(wèn)題了。
遇到問(wèn)題:(2013.03.20上午)
#include "libavcodec/avcodec.h"
報(bào)錯(cuò)
這個(gè)問(wèn)題很好解決悯嗓,這是路徑問(wèn)題
解決:
把#include "libavcodec/avcodec.h"
改為#include "avcodec.h"
即可
還有其他類似的件舵,改掉即可
**遇到問(wèn)題:(2013.03.20午)
Undefined symbols for architecture i386:
"_iconv", referenced from:
......
見圖:
這種問(wèn)題看一眼就頭大,但還好的是脯厨,網(wǎng)上有很多人遇到過(guò)這個(gè)問(wèn)題铅祸,本來(lái)在How to Prepare Your Mac for iOS Development with FFmpeg Libraries 原文評(píng)論里有開發(fā)者提出這個(gè)問(wèn)題,但是博主沒(méi)有給出解決辦法合武,最后在stackoverflow里找到解決辦法(stackoverflow真是一個(gè)偉大的開發(fā)者技術(shù)網(wǎng)站临梗,好好利用!)
解決:
**
http://stackoverflow.com/questions/6854190/ffmpeg-integration-on-iphone-ipad-project/15429359#15429359
具體方法是稼跳,在工程
Targets
->Build Phases
中加入類庫(kù)libiconv.dylib****
**
至此盟庞,編譯就成功了!(
2013.03.25
以上描述有誤,因?yàn)榘凑绽贤庠牡牧鞒叹痹ǎ皇前丫幾g的armv7下的鏈接庫(kù)文件拉入了Xcode遂黍,沒(méi)有拉armv7s的,所以在iPad4上運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò)俊嗽,其實(shí)編譯已經(jīng)成功雾家!
然后把a(bǔ)rmv7s文件夾里include文件夾的文件夾們(真拗口)拉到工程里,運(yùn)行绍豁,若報(bào)如下錯(cuò)誤:
libavcodec.a(shi.o), in section __TEXT,__text reloc 0: R_ABS reloc but no absolute symbol at target address for architecture armv7
那么這個(gè)問(wèn)題是 gas-preprocessor.pl
版本的問(wèn)題芯咧,在這gas-preprocessor下載最新版本,替換之前的,然后再重新編譯一遍敬飒!
注意邪铲,不是替換掉原先文件就好了,要重新編譯无拗!按照老外的這個(gè)教程带到!
然后在真機(jī)iPad4或iPhone5上就可以真機(jī)運(yùn)行了!
新知識(shí):
終端查詢Xcode信息:
xcode-select
打印路徑和版本就不記錄了英染,更改路徑:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
2013-03-19