2011-04-27 123 views
6

我使用谷歌的GData API为了从我的应用程序上传视频到YouTube。上传工作正常,但上传的视频质量仅为360p,而原始视频的质量为720p。Youtube上传质量

这是按预期工作吗?如果是的话,是否有任何解决方案可以让我的应用上传HQ电影?

这是我用来实现视频上传的代码,如果有任何帮助的话。

GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup]; 
[mediaGroup setMediaTitle:title]; 
[mediaGroup setMediaDescription:desc]; 
[mediaGroup addMediaCategory:category]; 
[mediaGroup setMediaKeywords:keywords]; 
[mediaGroup setIsPrivate:NO]; 

NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:outputURL.relativePath defaultMIMEType:@"video/quicktime"]; 

GDataEntryYouTubeUpload *entry; 
entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup data:data MIMEType:mimeType slug:filename]; 

SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:); 
[service setServiceUploadProgressSelector:progressSel]; 

GDataServiceTicket *ticket; 
ticket = [service fetchEntryByInsertingEntry:entry forFeedURL:url delegate:self didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)]; 

布伦顿

+0

我也有类似的上传480p视频,但没有尝试过720p。它是一个很长的镜头,但是我的代码最大的区别在于我使用了@ @ video/mp4“'mime类型。 – 2011-06-30 02:20:08

回答

1

YouTube的转码流水线仅着眼于视频文件本身,以确定是否应该生成视频的HQ/HD版本。在gdata API调用中传递的内容无关紧要。

转码流水线寻找的东西包括视频大小以及平均比特率。例如,具有非常低比特率的720p视频可能不符合HD甚至HQ编码的条件。有时,错误编码的视频可能会导致错误的视频尺寸或比特率被其代码转换器解释,因此请确保您的视频编码器没有做任何奇怪的事情。

+0

我目前遇到同样的问题。你能稍微扩展一下吗?有没有办法确保用UIImagePickerController拍摄的视频以720p上传? – zakdances 2012-07-30 21:10:45

+0

我很久没有玩过YouTube API了,但我认为只要您设置了UIImagePickerController以使用最高的视频质量,并且源视频是在支持720p/1080p的iPhone上拍摄的( iPhone 4及更高版本),YouTube应能够以720p(或更高)播放上传的视频。只要确保你设置了'imagePicker.videoQuality = UIImagePickerControllerQualityTypeHigh;'。 – Ziconic 2012-08-11 18:46:24