'iOS'에 해당되는 글 53건

  1. 2011.10.26 iOS Private API 사용방법 4
  2. 2011.07.21 VLC for iOS 컴파일하기 19
  3. 2011.06.27 Implementation of streaming technologies on iPhone 2
iOS2011. 10. 26. 21:51


Today I had to use a private API while spiking a feature for an iPhone app I'm working on and I ran into a couple of gotchas along the way. There doesn't seem to be a simple step-by-step guide for using private iPhone APIs in XCode, so here's goes:

  1. First off, you're going to need the header files for the private frameworks. To dump them, use theFramework Dump Kit from Erica Sadun's site. Download the DumpFrameworks Perl script anywhere and put theclass-dump binary somewhere on your path (I put it in /usr/local/bin/)
  2. Run DumpFrameworks (navigate to the folder you downloaded it to in Terminal and type./DumpFrameworks). This will create the headers in~/Headers.
  3. In your XCode project, right-click the Frameworks folder in the Groups & Files panel and select Add → Existing Frameworks. Navigate to the header file(s) you want to add and select them. You should see the headers added to your project.
  4. Go to Project → Edit Project Settings, click on the Build tab, and scroll down to the Linking section. For the Other Linker Flags property, enter -force_flat_namespaceand -undefined suppress (thank you, Ken Ferry). If you forget this, you will get a linker error telling you that the symbols for the private classes you're using could not be found.
  5. Open up the header files you imported into your project and remove the superfluous import statements that the header dumper put there. Usually this is just an unnecessary #import "NSObject.h" but there may be others also. If you get errors, look for theSomeHeader.h: No such file or directory messages and remove the import statements corresponding to those errors from the private header files.
  6. Finally, import the private header files, use the classes in your application, build and run!

Of course, whether or not you should use the iPhone private API is another matter (undocumented calls may break at any time, Apple may reject your app, etc.) If you do want to play around with them, however, I hope the above instructions help you to get started without too much pain.

Posted by 삼스
iOS2011. 7. 21. 10:20

http://www.luuvish.org/208

VLC는 한번에 제대로 컴파일된 적이 없네요. iOS 버전은 최근에 작업중인지 그나마 덜 고생하고 컴파일 성공했습니다. 프로젝트들이 얽혀있어 분석이 쉽진 않겠네요.

$ tar jxvf VLC-1.1.0-iOS.tar.bz2
$ ln -s VLC-1.1.0-iOS vlc
$ cd vlc/extras/package/ios
  • build_for_iOS.sh 을 열어서 SDK 버전을 수정합니다. 현재 최신버전은 4.2.sdk입니다. IOS_SDK_ROOT="${DEVROOT}/SDKs/iPhone${PLATFORM}3.2.sdk"
  • build_for_iOS.sh 를 실행해서 컴파일해 보면 중간에 에러가 나면서 멈춥니다. patch file의 버전문제인데 ../../contrib/src-arm-apple-darwin10-ios/src/Patches/live-inet_ntop.patch의 161-185 라인을 참고해서 ../../contrib/src-arm-apple-darwin10-ios/src/live/liveMedia/RTSPServer.cpp을 직접 수정하면 됩니다. our_inet_ntoa()의 두번째 인자로 buf를 추가하기만 하면됩니다.
  • 이제 build_for_iOS.sh를 실행해서 컴파일합니다. 완료되면 vlc/install-ios-OS에 해더와 라이브러리가 생성됩니다.
  • MobileVLCKit의 static plugins를 build합니다.
$ cd vlc/projects/macosx/framework
$ xcodebuild -project MobileVLCKit.xcodeproj -target "Aggregate static plugins" -configuration "Release"
  • MobileVLCKit의 MobileVLCKit의 SDK 버전을 최신버전으로 수정하고 build합니다.
$ open MobileVLCKit.xcodeproj
fix Targets/MobileVLCKit - Get Info / Build
Configuration : All Configurations
Architectures / Base SDK : Latest iOS
$ xcodebuild -project MobileVLCKit.xcodeproj -target "MobileVLCKit" -configuration "Release"



MediaLibraryKit compile하기
  • 작업디렉토리(VLC-1.1.0-iOS와 같은 위치)에 MediaLibraryKit 디렉토리를 만들고 압축을 풉니다.
$ mkdir MediaLibraryKit && cd MediaLibraryKit
$ unzip MediaLibraryKit-1.1.0.zip
  • External 디렉토리로 들어가 MobileVLCKit의 링크를 만듭니다.
$ ln -s ../../vlc/projects/macosx/framework/build/Release-iphoneos MobileVLCKit
  • MediaLibraryKit의 SDK 버전을 최신버전으로 수정하고 build합니다.
$ open MobileMediaLibraryKit.xcodeproj
fix Targets/MobileMediaLibraryKit - Get Info / Build
Configuration : All Configurations
Architectures / Base SDK : Latest iOS
$ xcodebuild -project MobileMediaLibraryKit.xcodeproj -configuration "Release"



MobileVLC compile하기
  • 작업디렉토리(VLC-1.1.0-iOS와 같은 위치)에서 MobileVLC의 압축을 풉니다.
$ tar zxvf MobileVLC-1.1.0.tar.gz
$ cd MobileVLC
  • External 밑에 있는 MediaLibraryKit와 MobileVLCKit의 링크가 제대로 되어있는지 확인합니다.
  • MobileVLC의 SDK 버전을 최신버전으로 수정하고 build합니다.
$ open MobileVLC.xcodeproj
fix Targets/MobileVLC - Get Info / Build
Configuration : All Configurations
Architectures / Architectures : Standard (armv6 armv7)
Architectures / Base SDK : Latest iOS
build with Device-Release configurations

Posted by 삼스
iOS2011. 6. 27. 12:39

스트리밍 관련 다양한 구현방법에 대한 안내를 정리해둔 블로그가 있어서 긇어 보았다.
http://java2core.blog.me/90072021458

iPhone HTTP Streaming with FFMpeg and an Open Source Segmenter

HTTP live streaming: iPhone streaming media overview

HTTP Live streaming draft proposal

download the MoviePlayer iPhone demo application

Step 1: Grab the lastest version of FFMpeg

Step 2: Encode your video for the iPhone

Step 3: Download and build the segmenter

Step 4: Prepare the HTTP server

Step 5: Test the stream

Step 6: Automatically the stream encoding and segmentation

Step 7: Create a variable rate HTTP stream

참조: http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/

 

Wowza Media Server 2 Advanced Preview 7

Streaming to the iPhone and iPod touch (HTTP Streaming)

H.264/AAC/MP3

HTML

Live Stram Repeater

http://www.wowzamedia.com/advanced.php

 

Tuner2 HiFi Radio: iPhone/iPod Touch Player

Reduces Streaming Costs by up to 1/4.
Increases Stream Reliability.
Increases Audio Quality for a Better User Experience.
Plays AAC/HE-AAC v1 and v2 streams over EDGE/3GPP/WiFi Networks for high fidelity streaming.
Plays MP3 streams for backward compatibility (SHOUTcast and Icecast2 only).
Uses commercially licensed AAC/HE-AACv1/HE-AACv2 implementation from Fraunhofer IIS / FhG for the best audio quality, unobtainable by open-source implementations.
Uses standards-based servers such as SHOUTcast, Icecast2, QuickTime/Darwin-QTSS/DSS, and Real/Helix Streaming Servers, which can also be used to reach other players and devices, further reducing deployment and administrations costs.
Uses ICY MPEG-2/ADTS, RTP MPEG-4/ISMA, 3GPP/LATM, and RTMP Adobe Flash streaming transports and protocols, covering all basis, not just some.
Displays real-time Program Associated Data (PAD) as Program Associated Text (PAT), Stream Name, Stream Description, Artist, and Title.
Displays real-time Program Associated Graphics (PAG), Logos, Album Cover Art, and Commercials for revenue generation.
Save Titles with graphics and history information.
Recall Saved Titles to Purchase on iTunes, e-mail to other users, or play originating stream.
E-mail streams to other users. Uses Tuner2 for AAC/HE-AAC Streaming Directory Listings.
Allows additional arbitrary stream URLs to be entered directly into Player and Favorites without requiring input to a Directory Server.
Shake function to select random stream for the undecided and adventurous listener.
Automatically Connects to 3G/EDGE Network when available, wihout having to start browser first.
Deterministic auto-reconnect in the event of network interuption.
Allows incoming calls while streaming and auto reconnect upon call termination.
Full DMCA Compliant using true streaming protocols, not progressive downloading, and all required content information.
Support lanscape in most views.
Custom Player versions with custom Directory Listings available. Please ask for more information: info(at)indexcom.com
We do NOT support MP3 Flash streams.

http://www.indexcom.com/iphone/features.html

 

MPMoviePlayerController

AudioFileStream, CFReadStream, CFHTTPMessage and AudioQueue

 

The iPhone only supports "HTTP Streaming" by default, not RTP. This goes for audio or video. "HTTP Streaming" is really just "range requests" to an HTTP server so that portions of the audio or video stream can be downloaded at a time. Tomcat supports these requests just fine.

There are a few apps (QIK has something for example) on the iPhone that support true streaming, but nothing built in.

 

iPhone has no RTP Stack. But I could use an external one (PJMEDIA) ... and so become the MPEG-4/H.264 video frames in the application

http://www.iphonedevsdk.com/forum/iphone-sdk-development/13880-rtp-stream-video-audio.html

 

Adobe's RTMP (Real Time Messaging Protocol)

 

vlc4iphone

소스

http://github.com/zodttd/vlc4iphone

git://github.com/zodttd/vlc4iphone.git

Posted by 삼스