출처 : http://bluexmas.tistory.com/277
ffmpeg 라이브러리를 이용해서 wowza서버를 사용하는 rtsp 플레이어를 제작해보았습니다.
소스는 iFrameExtractor 프로젝트에서 파일 오픈하는 부분을 rtsp 주소를 사용했고,
ffmpeg 라이브러리 경로를 따로 설정해서 컴파일 했습니다.
설치한 ffmpeg 라이브러리가 ios용으로 컴파일 되어 있어서
시뮬레이터에서는 테스트 할 수가 없네요.
iFrameExtractor 프로젝트는 ffmpeg 라이브러리만 사용했기 때문에 플레이는 되지만,
속도는 나오지 않습니다. OpenGL ES / SDL 라이브러리 이용해야 될 것 같네요.
출처
http://stackoverflow.com/questions/10518082/how-can-you-pass-yuv-frames-from-ffmpeg-to-opengl-es
Tech Tutorial – How to setup a SDL-Ready XCode4 Project
CODEC_TYPE_VIDEO undefined
ffmpeg을 이용한 iOS 동영상 플레이어
https://developer.apple.com/
http://code.google.com/p/
소스 다운로드
ffmpeg 라이브러리 경로 설정
오류 수정
CODEC_TYPE_VIDEO undefined 발생 한다면,
AVMEDIA_TYPE_VIDEO 로 수정
rtsp 주소 설정
iFrameExtractorAppDelegate.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | - ( void )applicationDidFinishLaunching:(UIApplication *)application { //self.video = [[VideoFrameExtractor alloc] initWithVideo:[Utilities bundlePath:@"sophie.mov"]]; //self.video = [[VideoFrameExtractor alloc] initWithVideo:[Utilities bundlePath:@"oh.mp4"]]; [video release]; // set output image size video.outputWidth = 426; video.outputHeight = 320; // print some info about the video NSLog(@ "video duration: %f" ,video.duration); NSLog(@ "video size: %d x %d" , video.sourceWidth, video.sourceHeight); // video images are landscape, so rotate image view 90 degrees [imageView setTransform:CGAffineTransformMakeRotation(M_PI/2)]; [window makeKeyAndVisible]; } |
YUV 데이터 -> RGB 데이터 소스
VideoFrameExtractor.m
1 2 3 4 5 | -( void )convertFrameToRGB { sws_scale (img_convert_ctx, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, picture.data, picture.linesize); } |
실행
'프로그래밍 > iOS' 카테고리의 다른 글
MFMessageComposeViewController를 이용한 sms(문자) 보내기 (0) | 2012.09.13 |
---|---|
How to cross compile ffmpeg for iOS (iPhone and iPad) (0) | 2012.09.05 |
Objective-C에서 NSFileManger와 NSFileHandle을 이용하여 문자열을 파일로 저장하는 방법 (0) | 2012.09.04 |
페북 Single Sign On 을 iOS앱에 적용하기 (0) | 2012.08.08 |
아이폰에서 통신 사업자 및 국가코드 알아 오기. (0) | 2012.08.04 |