Swift mov視頻格式轉(zhuǎn)成其他的文件的格式

.mov格式是Apple公司開(kāi)發(fā)的一種音頻河劝,視頻的格式赎瞎,由蘋(píng)果系統(tǒng)的相機(jī)錄制出來(lái)的視頻都是以.mov格式進(jìn)行存儲(chǔ)的。最近要搞本地相冊(cè)視頻上傳务甥,如果要是以.mov格式上傳的話,安卓端播放起來(lái)有可能會(huì)出現(xiàn)麻煩态辛,所以就想在視頻上傳之前將其轉(zhuǎn)換一下格式,統(tǒng)一的轉(zhuǎn)換成.mp4格式挺尿,下面就是實(shí)現(xiàn)的代碼:Swift .mov轉(zhuǎn).mp4的寫(xiě)法奏黑,記錄下來(lái)跟大家分享,也為自己做筆記票髓。

    //視頻轉(zhuǎn)換格式.mov 轉(zhuǎn)成 .mp4
    //方法中sourceUrl參數(shù)為.mov的URL數(shù)據(jù)
    class func movFileTransformToMp4WithSourceUrl(sourceUrl: URL) {
        //以當(dāng)前時(shí)間來(lái)為文件命名
        let date = Date()
        let formatter = DateFormatter.init()
        formatter.dateFormat = "yyyyMMddHHmmss"
        let fileName = formatter.string(from: date) + ".mp4"
        
        //保存址沙盒路徑
        let docPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as NSString
        let videoSandBoxPath = (docPath as String) + "/ablumVideo" + fileName
        
        print(videoSandBoxPath)
        
        //轉(zhuǎn)碼配置
        let avAsset = AVURLAsset.init(url: sourceUrl, options: nil)

        //取視頻的時(shí)間并處理攀涵,用于上傳
        let time = avAsset.duration
        let number = Float(CMTimeGetSeconds(time)) - Float(Int(CMTimeGetSeconds(time)))
        let totalSecond = number > 0.5 ? Int(CMTimeGetSeconds(time)) + 1 : Int(CMTimeGetSeconds(time))
        let photoId = String(totalSecond)
        
        
        let exportSession = AVAssetExportSession.init(asset: avAsset, presetName: AVAssetExportPresetMediumQuality)
        exportSession?.shouldOptimizeForNetworkUse = true
        exportSession?.outputURL = URL.init(fileURLWithPath: videoSandBoxPath)
        exportSession?.outputFileType = AVFileTypeMPEG4 //控制轉(zhuǎn)碼的格式
        exportSession?.exportAsynchronously(completionHandler: {
            if exportSession?.status == AVAssetExportSessionStatus.failed {
                print("轉(zhuǎn)碼失敗")
            }
            if exportSession?.status == AVAssetExportSessionStatus.completed {
                print("轉(zhuǎn)碼成功")
                //轉(zhuǎn)碼成功后就可以通過(guò)dataurl獲取視頻的Data用于上傳了
                let dataurl = URL.init(fileURLWithPath: videoSandBoxPath)
                 //上傳視頻的話是需要同時(shí)上傳一張視頻封面圖片的,這里附帶一個(gè)獲取視頻封面截圖的方法洽沟,方法實(shí)現(xiàn)在下方
                let image = getVideoCropPicture(videoUrl: sourceUrl)
            }
        })
    }

獲取視頻封面截圖

    class func getVideoCropPicture(videoUrl: URL) -> UIImage {
        let avAsset = AVAsset(url: videoUrl)
        let generator = AVAssetImageGenerator(asset: avAsset)
        generator.appliesPreferredTrackTransform = true
        let time = CMTimeMakeWithSeconds(0.0, 600)
        var actualTime: CMTime = CMTimeMake(0, 0)
        let imageP = try? generator.copyCGImage(at: time, actualTime: &actualTime)
        let image = UIImage.init(cgImage: imageP!)
        return image
    }

最后說(shuō)一句廢話 不要忘了要引入 AVFoundation 框架

import AVFoundation
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末以故,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子裆操,更是在濱河造成了極大的恐慌炉媒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昆烁,死亡現(xiàn)場(chǎng)離奇詭異吊骤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)静尼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)白粉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鼠渺,你說(shuō)我怎么就攤上這事鸭巴。” “怎么了拦盹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵鹃祖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我普舆,道長(zhǎng)恬口,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任沼侣,我火速辦了婚禮祖能,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘华临。我一直安慰自己芯杀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布雅潭。 她就那樣靜靜地躺著揭厚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扶供。 梳的紋絲不亂的頭發(fā)上筛圆,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音椿浓,去河邊找鬼太援。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扳碍,可吹牛的內(nèi)容都是我干的提岔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼笋敞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼碱蒙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赛惩,失蹤者是張志新(化名)和其女友劉穎哀墓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喷兼,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篮绰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了季惯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吠各。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖勉抓,靈堂內(nèi)的尸體忽然破棺而出走孽,到底是詐尸還是另有隱情,我是刑警寧澤琳状,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站盒齿,受9級(jí)特大地震影響念逞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜边翁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一翎承、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧符匾,春花似錦叨咖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至焰坪,卻和暖如春趣倾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背某饰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工儒恋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人黔漂。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓诫尽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親炬守。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牧嫉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件劳较、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,065評(píng)論 4 62
  • 房產(chǎn)銷(xiāo)售存在技巧與套路,深入分析可以解釋與中介交互中不經(jīng)意和曾認(rèn)為理所當(dāng)然的東西,對(duì)于銷(xiāo)售來(lái)說(shuō),產(chǎn)品并不是全部.通...
    英勇意志的晨星閱讀 256評(píng)論 0 0
  • --致我們回不去的青春 你遠(yuǎn)離的日子 我隨風(fēng)流浪了很久 昨日旅途依舊 風(fēng)光旖旎 落下一地快樂(lè)時(shí)光 溫暖還在掌心漫延...
    小青金閱讀 318評(píng)論 5 8
  • “男女之間驹止,真愛(ài)是什么感覺(jué)浩聋?有人說(shuō),必須是如癡如醉臊恋、要死要活衣洁,才可算數(shù)。這種激情狀態(tài)當(dāng)然很可貴也很美好抖仅,但一定是暫...
    汪汪的愛(ài)閱讀 153評(píng)論 0 2
  • 這是一張“不用老師評(píng)講的寒假作業(yè)試卷”撤卢。難一點(diǎn)的題目旁邊环凿,都貼著一個(gè)二維碼,用爸爸媽媽的微信掃一掃放吩,就跳出一個(gè)...
    教育學(xué)人陽(yáng)建閱讀 1,133評(píng)論 0 1