2013年1月29日 星期二

PJSIP -- compiled and execute in iOS simulator

為了要在 iOS 上實作 NAT Traversal 的功能,因此選擇了 PJSIP 當做參考資料,以下記錄實驗過程。

1. 下載程式
http://www.pjsip.org/download.htm,本次測試使用的版本為 version 2.0.1

FFMPEG -- Compile FFPLAY on MAC

FFMPEG won't compile ffplay be default. Below list the procedure to compile ffplay correctly.

1. Install MacPorts (v2.1.2)
Download from http://www.macports.org/,Choose the Mac OS version of your platform,download the dmg file and install.  After installed, we should update MacPorts to latest version, run below command.
$sudo port -fvds selfupdate

2013年1月27日 星期日

FFMPEG -- 編譯 ffmpeg library for iOS

本篇介紹如何在 MAC 環境下編譯 FFMPEG,並且使用 iphone simulator 進行測試。

文章中使用的軟體版本皆是 2013/01/27 時的最新版本:
  • Virtual Box 4.2.6 r82870
  • Mac OS X 10.8.2
  • Xcode 4.5.2
  • git 1.7.10.2
  • FFMPEG, checkout the latest version of Jan 27, 2013 
  • iFrameExtractor, checkout the latest version of Oct 21, 2012

轉載 -- Building FFmpeg for iPhone

轉載 http://blog.sina.com.cn/s/blog_51396f890102dyde.html,作者:观自己

事先申明,此文涉及所有代码、文档均为网上搜集整理,本人只做整合修改。目前我写的代码就归公司所有吧,不贴出来了。所有遇到问题,均从google上获得答案。可能需要翻*墙。
从http://www.iphonedevsdk.com/forum/iphone-sdk-development/51697-rtsp-streaming-iphone-works-great.html该网页上下载iXen上传的rtspclient 和rtspsample代码。这两个代码都不能运行。稍作修改。把rtspclient中的RTSPClientSession.h 和RTSPClientSession.m添加到rtspsample中去。
参照http://www.cocoachina.com/bbs/read.php?tid-8466-page-1.html这里面制作静态库的方法,把live555的静态库加入进去。编译的时候会有一些小问题,稍加修改即可。这个时候,一个完整的rtsp客户端就ok了。

2013年1月24日 星期四

STUN -- RFC 3489 與 RFC 5389


本篇整理 RFC3489 與 RFC5389內容,針對STUN技術作一基本介紹,並將重點放在比較兩份規範之不同。

RFC3489 
STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)
RFC5389 
Session Traversal Utilities for NAT (STUN)

2013年1月21日 星期一

ONVIF -- 重現錯誤的方式

在 client 與 server 的互通測試過程中,有時候客戶僅會使用我們所提供的client進行測試,但是卻不會想要讓我們擁有他們的server以自行進行測試。如此一旦遇到問題時,便只能夠靠 wireshark 封包來分析猜測可能原因。Debug工作將會變得非常不方便。

下面介紹的便是如何藉著 wireshark 封包的內容,讓問題重現。

2013年1月15日 星期二

ONVIF -- audio channel

許多 IPCAM 都支援了將聲音由 NVR 傳至IPCAM 的功能,ONVIF 組織針對此功能定義了一套標準作法,稱為 audio backchannel,首先會利用 AudioOutputConfiguration 內的 Send-Primacy 設定 audio in/out 方向,接著再使用 RTSP ,利用其擴充功能 "Require" 來傳送接收 audio stream。


根據 ONVIF 規範,我們將其分成兩部分來討論