iOS에서 FFmpeg를 사용해 동영상을 스트리밍할 때 HTTP 요청의 헤더 변경 방법

- (AVDictionary*) createAVFormatContextOptions: (NSDictionary*)dict
{
AVDictionary *options = NULL;
for (NSString* keyString in dict) {
av_dict_set(&options, [keyString UTF8String], [[dict objectForKey:keyString] UTF8String], 0);
}
return options;
}
- (void) updateAVFormatContextWithOptions: (AVDictionary**)options {
if (_formatCtx)
return;
AVDictionary *tmp = NULL;
if (options) {
av_dict_copy(&tmp, *options, 0);
}
if (av_opt_set_dict(_formatCtx, &tmp) < 0) {
av_dict_free(&tmp);
}
}
- (void) someWhereElse
{
NSMutableString* cookieString = [NSMutableString stringWithString:@"Cookie: "];
for (NSHTTPCookie* cookie in [NSHTTPCookieStorage sharedHTTPCookieStorage].cookies) {
[cookieString appendFormat:@"%@=%@;", cookie.name, cookie.value];
}
[cookieString appendString:@"\n"];
NSDictionary* dict = [NSDictionary dictionaryWithObject:cookieString forKey: @"headers"];
AVDictionary* options = [self createAVFormatContextOptions:dict];
avformat_open_input(&amp;formatCtx, [path cStringUsingEncoding: NSUTF8StringEncoding], NULL, &amp;options)
...
}

댓글

이 블로그의 인기 게시물

Unity에서 모델의 폴리곤의 반대편이 랜더링 되지 않는 문제 해결 방법

Docker 컨테이너 네트워크 설정시 ifconfig로 docker0를 찾을 수 없는 문제에 대해

Use FFMPEG in XCode(for MacOS)