1. 程式人生 > >AVI Player with Playmaker actions 視訊格式轉化之FFMPEG轉化 (三)

AVI Player with Playmaker actions 視訊格式轉化之FFMPEG轉化 (三)

前兩篇大體介紹了一下AVI以及其簡單的用法,這裡補充一下兩個函式這個是大部分視訊播放器會用到的函式,但是AVI把這兩個引數藏得很深,為了方便大家使用這裡我就直接上程式碼,啥玩意你自己可以去看看註釋,注意這個兩個函式是放在MoviePlayer類裡面的,程式碼如下:

 /// <summary>
    /// 獲取視訊總時長
    /// </summary>
    /// <returns></returns>
    public float GetLastVideoTime()
    {
        if (movie == null)
            return 0.0f;
        return movie.demux.videoStreamInfo.lengthSeconds;
    }
    /// <summary>
    /// 獲取視訊總幀數
    /// </summary>
    /// <returns></returns>
    public int GetLastVideoFrame()
    {
        if (movie == null)
            return 1;
        return movie.demux.videoStreamInfo.frameCount;
    }
好了,接下來我們繼續說說AVI的視訊轉化方式,AVI Player with Playmaker actions 這個外掛我們可以從名字中大體瞭解到,這是專門播放AVI格式的一個外掛,但是如果你以為是簡單的使用格式工廠或者其他格式轉化工具就可以使用那麼你就大錯特錯了。因為我已經使用過這種方法了,利用格式工廠將MP4格式的視訊轉化成了AVI格式再名字後面改成bytes格式的方式是行不通的。所以打消你那個逗逼的想法吧!

AVI外掛有兩個自帶的格式轉化方式,那麼放在哪裡呢?一開始我也找了挺久的後來還是看程式碼才知道在哪,不廢話直接上圖片,如下圖所示:


這裡可以看的出來,AVI提供了兩個轉化格式的方法,這裡我暫時我只會第一種方式,第二種方式的轉化會出現報錯,我也去查過國外的資料暫時還沒有找到解決的方式,如果有人用過的話麻煩教教我怎麼用吧~

接下來我們說說第一種轉化格式,我們看到小括號裡面寫著(Uses FFMPEG)這個是啥意思,其實就是作者給我們的一個提示,你去百度和谷歌後就會發現FFMPEG是一個將視訊轉化為流化音視訊,我們先點開來看看這個介面有啥,如圖所示:


注意如果沒有正確配置FFMPEG紅框位置,是會提示紅色並且提示你缺少FFMPEG。所以我們接下來就要配置FFMPEG的環境,我們先去官網下載它的壓縮包,官網地址:點選開啟連結

然後解壓到你想放置的盤裡面,這裡我放到了D盤的Begonia的目錄下了,如圖所示:


然後我繼續往下走,在環境變數裡面Path裡面設定一下FFMPEG的路徑,這裡注意路徑移動要指到bin檔案下,大體如下圖所示:


然後我們用管理身份執行CMD,輸入命令“ffmpeg  –version”,如果出現下圖所示表示安裝成功了:


然後我們回到unity3D繼續進行視訊轉化,如果FFMPEG配置視窗就會像前面的所示一樣,如果還是現實紅色報錯,那你就要推出unity3D重新開啟專案報錯就會消失的了,方式還是挺簡單的這裡就不細講了,我簡單的講一下大體用法就可以了。我們先去看看有哪些東西,如圖所示:


Infile是你視訊的位置,outfile是輸出轉化後的視訊位置,Video開頭的都是設定視訊畫面屬性,要注意的是video resize這是設定視訊輸畫面大小,預設是按照原來視訊畫面大小輸出的,Audio開頭是音訊屬性設定,後面兩個屬性看圖來說,如圖所示:


這是CMD的控制語句,也就表示如果你會FFMPEG也可以自己在編寫視訊輸出屬性。後面兩個屬性看英文大體就會明白是什麼意思,因此我們就不說了,最後的按鈕也就執行按鈕而已。到這裡AVI視訊轉化基本講完了。接下來我們講講FFMPEG雞肋的東西,如果不是這個雞肋估計我會很喜歡使用這個外掛。

這個FFMPEG轉化的視訊基本沒辦法使用,為啥呢因為視訊轉化出來的大小太驚人了,我一個2分鐘MP4格式視訊轉化出來居然變成1G多原視訊才6M左右,我心頓時各種草泥馬,然後我慢慢的除錯壓縮在進來不影響畫質的情況下也要132M,主要是video resize影響視訊的大小,其他基本不會有太大影響,如果我使用1920x1080的畫質視訊可以飆升到4G。這是沒辦法使用到手機上的吧!反正我們公司的破電腦跑不動,而且只是一個2分鐘而已的視訊,我真不知道AVI作者怎麼搞得,可能第二個轉化方式不會怎麼誇張的吧,這些就不是很清楚了,等我查到第二個轉化方式的時候我會第一時間告訴大家的。如果那個大神有FFMPEG詳細使用方式以及壓縮方式,小弟這裡跪求請教了~(如果還是疑問可以私信我,如果我會的話一定會幫你們解決問題的)

                                                                                                                                                                                                                           ----Begonia