2011-06-02 120 views
11

我們可以裁剪圖像。我們可以裁剪視頻嗎?在iOS中裁剪視頻

+0

嗨,你能找到答案嗎?我需要實現相同的 – SriPriya 2011-07-14 06:13:08

+0

@Priya,抱歉,我沒有得到任何答案。等待線索或專家的建議 – Anand 2011-07-14 08:31:09

+0

謝謝,如果我發現任何,我會告訴你 – SriPriya 2011-07-14 08:35:45

回答

7

由於視頻是圖片的集合,因此您可以在視頻和創建新視頻後裁剪所有幀。 AVFoundation指南描述了一些任務: Putting it all Together: Capturing Video Frames as UIImage Objects 此之後,你的作物圖像和寫入視頻

您可以使用資產的作家產生QuickTime電影文件或從媒體如樣品緩衝或靜止的 MPEG-4文件圖片。

詳情參見AV Foundation Framework

+0

感謝您的回答。你提供的鏈接真的很好。通過使用CMSampleBuffer我得到圖像,但如何將其轉換爲視頻。 – Anand 2011-07-14 11:46:07

+0

「把它放在一起......」不再有效的鏈接是有一個新的鏈接,或另一個人可以提供的教程 – iqueqiorio 2015-04-03 19:32:26

+0

@beryllium鏈接不工作如此downvoted。毫無疑問,你的答案是正確的。 – KDeogharkar 2015-04-23 06:47:57

0

它並不像圖片

一樣簡單,但它可以作爲視頻的正確規範一樣簡單,但沒有足夠的信息。在解碼設置中,您可以通過幾何圖形來操作視頻像素,即變形,擠壓,拉伸以及播放器/瀏覽器設置,圖像窗口或播放器窗口,您可以指定一個小的播放器窗口和一個放大級別。如果你允許或不允許縮放/放大,你會強制一個offscreeen繪製或黑條。

我會編碼到正確的大小和平臺以獲得最佳質量,這些修補程序是'kludges',但他們工作在一個捏。我會抓住quicktime sdk並捅捅。

2

您應該可以使用AVAssetExportSession,AVVideoComposition和AVVideoCompositionCoreAnimationTool來完成此操作(並且只需根據需要設置CALayer層次結構)。不過,我不確定這是否是最有效的方法。

5
[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; 
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL options:nil]; 
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetLowQuality]; 
exportSession.outputURL = outputURL; 
exportSession.shouldOptimizeForNetworkUse = YES; 
exportSession.outputFileType = AVFileTypeQuickTimeMovie; 

CMTime start = CMTimeMakeWithSeconds(1.0, 600); 
CMTime duration = CMTimeMakeWithSeconds(120.0, 600); 
CMTimeRange range = CMTimeRangeMake(start, duration); 
exportSession.timeRange = range; 

[exportSession exportAsynchronouslyWithCompletionHandler:^(void){ 
       handler(exportSession); 
       [exportSession release];}]; 

這裏我們得到一個前2分鐘的視頻。