[Visual Studio 2013][ffmpeg] 如何在 VS2013上面使用 ffmpeg

其實相當簡單,不過把一些常遇到的問題記錄一下 可以到官方位置去下載 http://ffmpeg.zeranoe.com/builds/ Shared —> DLL檔案需要給執行檔用的 Dev      —> include/lib 你在編譯的時候需要用到 把 include / lib 加入相關的VC設定 需要sample code(範例程式 找找 doc/example/avcodec.c) 如果你改成cpp以下需要注意: 前面需要加上,避免C/C++的衝突 #include extern “C”{ #ifndef __STDC_CONSTANT_MACROS #define __STDC_CONSTANT_MACROS #endif #include <libavutil/opt.h> #include <libavcodec/avcodec.h> #include <libavutil/channel_layout.h> #include <libavutil/common.h> #include <libavutil/imgutils.h> #include <libavutil/mathematics.h> #include <libavutil/samplefmt.h> } * 遇到問題snprintf compiler error * 換成  _snprintf * 遇到warning C4996: 'sprintf' was declared deprecated * 加上#pragma warning(disable:4996) * Release 會遇到 error LNK2026: module unsafe for SAFESEH image.  * Project Property Page —> [Linker] —> [Advanced]—> [Image Has Safe Exception Handler] ==>YES—> NO 記得要把你會用到的lib 加入link 在這裡是 avcodec.lib, avutil.lib 最後記得exe需要跟prebuild 出來的部分放在一起 最後放上改好的sample     參考: * [http://elvisjeng.blogspot.tw/2011/11/visual-studio-2010-ffmpeg.html](http://elvisjeng.blogspot.tw/2011/11/visual-studio-2010-ffmpeg.html) * [http://www.cnblogs.com/Jerry-Chou/archive/2011/03/31/2000761.html](http://www.cnblogs.com/Jerry-Chou/archive/2011/03/31/2000761.html) * [http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010](http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010)
繼續閱讀

[Python][Django]開始學習DjangoRestFramework (1)

對於如何架設一個可以使用JSON來讀取與存取資料的Django  如果要快速的可以使用JSON的部分,可以去使用DjangoRestFramework  這裡稍微記錄一下,整理流程: 可以參考http://www.django-rest-framework.org/tutorial/quickstart 建立準備環境 virtualenv env source env/bin/activate pip installl django pip install djangorestframework 開啓project django-admin.py startproject tutorial cd tutorial python manage.py startapp quickstart 修改Project設定 edit tutorial/setting.py (這裡要注意一下, database 的Name跟Engine是否對應) DATABASES ={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(BASE_DIR, 'db.sqlite3','USER':'','PASSWORD':'','HOST':'','PORT':''}} 設定資料庫 python manage.py syncdb 修改其他的部分就繼續參考原來的說明部分 http://www.django-rest-framework.org/tutorial/quickstart 啟動測試: Python manage.py runserver 直接打開 http://127.0.0.1:8000/users 就可以看結果 接下來應該會弄更複雜的部分,還有去把RESTful關於 post 的部分弄起來….. 
繼續閱讀

[Python] 如何在Heroku上架設Django- 快速筆記跟錯誤解決方法

自從上次開始重新學習python之後,現在繼續開始把python學習之旅延伸到Django 學習Django 主要是為了要架設所謂的RESTful的server而鋪路 主要也是為了之後可以把server架設起來後,不論是透過行動裝置或是其他的伺服器可以抓取到放在Heroku上面的資料 這邊由於自己也還在摸索,所以對於上列所有的專有名詞請自行點進去觀看 在前一篇文章中,裡面有提到兩個奇怪的指令 virtualenv 與 source  與Procfile 尋找了一下相關的教學文件,這裡可以摘錄一下: > > Virtualenv 和 Pythonbrew 都是可以創造虛擬(獨立)Python 環境的工具,只是虛擬(獨立)標的不同。 Virtualenv 可以隔離函數庫需求不同的專案,讓它們不會互相影響。在建立並啟動虛擬環境後,透過 `pip` 安裝的套件會被放在虛擬環境中,專案就可以擁有一個獨立的環境。簡而言之,Virtualenv 可以幫你做到: > > > > > * 在沒有權限的情況下安裝新套件 > > * 不同專案可以使用不同版本的相同套件 > > * 套件版本升級時不會影響其他專案 取自: [http://www.openfoundry.org/tw/tech-column/8516-pythons-virtual-environment-and-multi-version-programming-tools-virtualenv-and-pythonbrew](http://www.openfoundry.org/tw/tech-column/8516-pythons-virtual-environment-and-multi-version-programming-tools-virtualenv-and-pythonbrew) > 另外一篇也有提到:  > > Virtualenv 可以建立虛擬的 Python 環境,虛擬環境彼此之間互不干擾,也可避免搞亂 Python 主要安裝路徑,可以使用 `virtualenv --distribute venv` 來建立一個虛擬環境路徑,其中 venv 可以是任意的環境名稱,這會建立一個 venv 目錄,進入該目錄後,執行 `source bin/activate` 可以啟動虛擬環境,輸入 `deactivate` 可以關閉虛擬環境。 > > > > [http://www.codedata.com.tw/python/python-tutorial-the-1st-class-3-hello-world-traditional-chinese-edition/](http://www.codedata.com.tw/python/python-tutorial-the-1st-class-3-hello-world-traditional-chinese-edition/) > > 所以依照這兩種意思,可以清楚地了解為了不要混淆到各個專案的套件,所以可以利用virtualenv來做個簡單的隔離. 快速筆記 這裡相當推薦CoreData這篇文章,不論是他的Django版本比較不容易有相容性的問題,之後也有簡單的介紹關於RESTful與Python架構的文章. 我這裡只註解一些比較容易忽略的地方 小心使用另外一篇OpenFoundry的文章由於他的設定文件都是針對Django 1.4.2 如果你的環境比較新.在設定資料庫就會發生問題. 建議的循序漸進的方式如下: 先用python 架設起來,並且可以正確的使用 python manage.py runserver正常執行. 在開始設定Heroku 的檔案 Procfile 或是requirements.txt然後用 foreman start來測試是不是可以正常執行. 最後才用heroku create 跟 git 來push 到Heroku 主機上面去. 這理由這篇文章有提供教學(當然Heroku官方也有) 裡面有提供 Procfile 的設定 web: python manage.py runserver 0.0.0.0:$PORT —noreload    git push heroku master 發生錯誤時候的解決方法: No such app as XXXXX-XXXX 原因: 可能是因為執行heroku create兩次 解法: 首先,查看git remote 設定 git remote -v   確定之後移除 git remote rm heroku  然後加上新建立的id git remote add heroku YOUR_APP_ID 參考: iT邦幫忙 http://ithelp.ithome.com.tw/question/10061577 Push rejected, no Cedar-supported app detected 原因: 這個東西我找了很久,原因可能是任何一種.這邊提供檢查方法跟解決方法. 解法: 先確認local tool “foreman start” 是可以正常執行,來確認 Procfile 跟 requirements.txt沒有任何問題… 如果發生問題,在去這兩個檔案去尋找問題點. 接下來可能是因為你已經開啟了第二個heroku app,由於heroku只能接受開啟一個app,去Heroku控制台去把另外的都砍掉.然重新試試看.  
繼續閱讀

[iOS][VC] 關於debugger 的進階利用 - 利用breakpoint幫你列印一些資訊...

最近看了一篇挺好的文章(快速開發iOSApp),雖然是iOS的文章但是有提到一段是關於XCode debugger的進階運用教學 當然這裡提到的不是hit count,condition 那一系列的用法. 這裡有影片,可能需要iOS Dev 帳號 (影片1) (影片2) 裡面最好用(最近)的就是直接利用break point 去印一些文字幫助你debug 設立一個breakpoint 使用右鍵Edit breakpoint “Add action”-> 印出你需要的物件(po XXX 或是  expr (void)NSLog(@“%f”, XXX) 點選”Automatically continue after evaluating” 這裡有官方文件,不過還是影片教學比較好. 回過頭來也去研究微軟的Vistual Studio 看看有沒有類似的功能.沒有那麼強大~但是其實也是有的.以下是VS2013的設定步驟: 建立一個Breakpoint 一樣使用右鍵,選取”When Hit” 印出你要的字,這裡如果要印出變數~多做一些功…   這裡有完整的說明,可以參考… 兩者(Xcode 5 V.S. VS2013 SP1) 比較一下 VS2013 只可以印出資訊 (參考 DebuggerDisplayAttribute ) 可以直接“{變數}”來列印 XCode 不僅僅可以列印變數,影片中甚至建議你可以利用這個去新增或是變更你的breakpoint. 基本上 Add Action 所以任何Action都可以思考. 影片中有提到可以使用 AppleScript 去寄信給你當任何exception 發生的時候.這樣一來可以跑overnight testing 隔天再來看結果就好了. 但是如同前面提到的,需要跑一些特殊的動作的時候.確認不會變動到你的邏輯. 使用這個的好處是什麼?  不用改code,不用一個個breakpoint 停下來看.馬上可以了解程式的流程…. 不用切換到debug version,可以直接在release來利用印出文字了解流程,但是release版本無法正確印出變數(除非是managed code). 很多問題都只發生在release version你懂得. (尤其是客戶手上的那版 XD) 但是其實也是有一些缺點: 變得慢.. 別忘了任何的breakpoint 都是在程式內部增加 interrupt 所以一定變慢(VS2013上還挺明顯的) 當你試著要做某些動作的時候,有可能會變更IDE內部的動作.這個在XCode的演講裡面有提到,可以詳細去看…
繼續閱讀

[VC++] OpenCV相機使用相關...

OpenCV是個非常簡單而且好用的影像相關處理的library. 而針對相機的處理上,其實OpenCV也是可以快速寫出一個sample application 之前要處理相機旋轉上作了一些查詢,這裡記錄一下 安裝OpenCV: 抓下最新的code 增加 buildinclude 到VC設定(記得選取到正確的VC版本) 增加buildx86vc12lib 到library 設定 記得複製相關的dll 到執行目錄 關於旋轉方面: 相機拍照的時候如果去旋轉你的相機,你也要把拍進來的資料做旋轉. 關於Rotation的部分,其實找了不少的方式.不過發現最方便的方法還是使用cvTranspose 跟 cvFlip 不過當初為了讓OpenCV瘦身,拔除了不少的function 很難在現在的狀況下去debug. 於是去把OpenCV重新安裝起來,並且自己弄了一個camera的測試小app ,想不到比想像中的快速多 這裡僅僅去備份一下,這個測試app:功能很簡單,開啟相機~並且可以用 “T” “ “R” “F” 來旋轉圖片 “Q”離開        參考資料:  http://stackoverflow.com/questions/2259678/easiest-way-to-transpose-an-image-rotate-by-90-degrees-using-opencv http://stackoverflow.com/questions/15043152/rotate-opencv-matrix-by-90-180-270-degrees http://www.tuicool.com/articles/UFZJzm http://stackoverflow.com/questions/2289690/opencv-how-to-rotate-iplimage http://opencv-srf.blogspot.tw/2010/09/rotating-images.html 
繼續閱讀

[iOS][FacebookSDK] 更換Facebook SDK 到 3.13啟動 SSO (Single Sign On)

我的iOS App送過去iTune Connect 準備上架的review,經過了一個多禮拜的等待. 想不到八個小時就失敗了,接下來就得去修改. 要求把Facebook login 從web login 修改成 SSO(Single Sign On) 要求增加一些互動的功能,比如說分享或是Push Notification… 首先先回頭來看我的Facebook SSO login 的部分吧. 首先我發現我的Facebook版本有點舊,於是我去下載並且更新了最新版本3.13 在沒有修改任何code的狀況下,基本上我使用openActiveSessionWithReadPermissions,我發現了以下的問題: 在模擬器上面,由於沒有FB App 所以一定會走到Web login 在手機上面會出現 error code 2~也不會走去web login 再找了許多方式無法正常解決之後,我決定重新寫一個sample app 來測試.主要是重新看facebook 這裡的教學.想不到就成功了. 於是去分析之後,發現隨著SDK的修改iOS 設定也有以下更改 增加了新數值FacebookDisplayName 由於之前上架,我把我的bunddle name 有修改了,要去FB dev上面的設定去修改 改完之後就可以了…. 想不到換SDK就可以達成SSO,不過可能是bundle name一直錯誤的原因~但是沒有查出來… 如何反覆測試login (How to test SSO repeatedly) 去[Facebook APP]裡面的[隱私設定]->[應用程式] 移除你的App 重新安裝App 提供給大家.. 參考文章: http://stackoverflow.com/questions/6786819/how-to-implement-single-sign-on-sso-using-facebook-ios-sdk-for-iphone http://n11studio.blogspot.tw/2012/07/ios-facebook-getting-started.html https://parse.com/tutorials/integrating-facebook-in-ios https://developers.facebook.com/docs/reference/iossdk/authentication/ https://developers.facebook.com/docs/ios/login-tutorial/
繼續閱讀