2014-07-02 101 views
2

我有webm視頻文件的URL。如何在MPMoviePlayerController中播放它們? 我想這如何在MPMoviePlayerController中播放webm流媒體視頻?

NSURL* videoURL = [NSURL URLWithString:self.hack.video]; 
MPMoviePlayerController* mPlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL]; 
mPlayer.movieSourceType = MPMovieSourceTypeStreaming; 
mPlayer.view.backgroundColor = [UIColor grayColor]; 
[mPlayer.view setFrame:self.videoView.bounds]; 
[mPlayer prepareToPlay]; 
[mPlayer play]; 
[self.videoView addSubview:mPlayer.view]; 
self.videoView = mPlayer.view; 

使用MP4的URL,但只顯示支持WebM視頻的背景色時也能正常工作。

回答

2

MPMoviePlayerController DOC,

支持的格式

該類扮演的iOS支持的任何視頻或音頻文件。這 包括流內容和固定長度的文件。對於電影 文件,這通常意味着與擴展名的文件.mov格式,.MP4, .mpv和.3gp使用和使用下列壓縮標準之一:

H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. (The Baseline profile does not support B frames.) 

MPEG-4 Part 2 video (Simple Profile) 

如果你使用這個類來播放音頻文件,它會在音頻播放時顯示帶有QuickTime標誌的白色屏幕 。對於音頻文件,此類支持高達48 kHz的AAC-LC音頻和支持高達48 kHz立體聲音頻的MP3(MPEG-1音頻 第3層)。

iOS似乎不支持webm格式。

+0

這不是一個答案。其他應用程序找到解決辦法 –

+2

@ DavidL.Rodgers我不明白爲什麼這不是答案。找到解決方法的其他應用程序不要使用「MPMoviePlayerController」來執行此任務。他們使用'AVFoundation'。這個問題是關於'MPMoviePlayerController'。 – sleepwalkerfx

0

視頻必須採用iOS支持的格式。 WebM格式與在iOS中播放視頻的可接受格式不同。您可能需要將這些視頻文件轉換爲使用MPMoviePlayerController進行播放。

IOS支持許多工業標準的視頻格式和壓縮標準,包括以下:

  • H.264視頻,高達1.5 Mbps的,640×480像素,每秒30幀, 低 - H.264基線配置文件的複雜版本,帶有AAC-LC 音頻,最高160 Kbps,48 kHz,立體聲音頻,格式爲.m4v,.mp4和.mov 文件格式。

  • H.264視頻,高達768 Kbps的,320×240像素,每秒30幀, 基線簡介高達1.3與AAC-LC音頻電平高達160 Kbps的,48 千赫,在立體聲音頻。 m4v,.mp4和.mov文件格式。

  • MPEG-4視頻,高達2.5 Mbps的,640×480像素,每 每秒30幀,Simple Profile採用AAC-LC音頻高達160 Kbps的,48kHz時,在的.m4v 立體聲音頻的.mp4和.mov文件格式。

  • 許多音頻格式,包括「音頻 技術」中列出的音頻格式。

https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html#//apple_ref/doc/uid/TP40007898-CH9-SW6

+0

這不是一個答案。 –

1

如果你想支持其他的編解碼器,嘗試ffmpeg

+0

這是Obj-C嗎?它看起來像服務器代碼。我正在嘗試在應用中執行此操作。 –

+0

它是基於c或C++的框架。你可以使用它。 – Ryan

+0

ffmpeg是一個巨大的視頻框架集合......它幾乎可以做任何事情,但是有一個非常大的工程師開銷來弄清楚編譯什麼等等。我從來沒有對iOS上的ffmpeg做過任何事情,但我認爲它已經完成。 –

相關問題