1. 程式人生 > >ckplayer插件播放視頻

ckplayer插件播放視頻

index.php mp4 event 鼠標 成功 說了 tex 簡單 容器

官網:超酷網頁視頻

本篇介紹:插件播放視頻添加插件(額外的功能)視頻格式之間的轉換

PC端一般都是利用插件(Flash)來播放視頻,可以支持很多格式。網上很多說這個插件的,這裏只是做個記錄。

下載好,移動到我們的項目,開始測試。因為裏面的功能有點多,你可以去看文檔完成自己需要的需求,這裏只是簡單的記錄。

我們PC一般會存放FLV格式視頻,而MP4則使用與很多場景。 FLV體積小,速度快這也是為什麽網站都選選擇使用這個格式。

最簡單的版本:

<div id="a1"></div>       <%--視頻的位子--%>
    <script src="
jquery-1.11.2.min.js"></script> <script src="ckplayer/ckplayer.js"></script> <%--插件JS--%> <script type="text/javascript"> //初始化視頻容器 initCKPlayer(a1, /Video/1_0.mp4, /ckplayer/ckplayer.swf); //初始化視頻播放器需配合ckplayer.js使用 function initCKPlayer(boxId, videoSrc, playerSrc) {
var flashvars = { f: videoSrc, c: 0 }; var video = [videoSrc+‘‘+ ->video/mp4]; CKobject.embed(playerSrc, boxId, video_v1, 600, 400, true, flashvars, video); //false表示插件,true表示HTML標簽播放,如果不是video所支持的類型不會顯示 }
</script>
   常用對象屬性。  
f:http://movie.ks.js.cn/flv/2011/11/8-1.flv,//視頻地址 a:‘‘,//調用時的參數,只有當s>0的時候有效 s:0,//調用方式,0=普通方法(f=視頻地址),1=網址形式,2=xml形式,3=swf形式(s>0時f=網址,配合a來完成對地址的組裝) c:0,//是否讀取文本配置,0不是,1是 x:‘‘,//調用xml風格路徑,為空的話將使用ckplayer.js的配置 i:‘‘,//初始圖片地址 d:http://www.ckplayer.com/temp/11.jpg,//暫停時播放的廣告,swf/圖片 u:http://www.baidu.com,//暫停時如果是圖片的話,加個鏈接地址 l:http://www.ckplayer.com/down/start.swf,//視頻開始前播放的廣告,swf/圖片/視頻 r:‘‘,//視頻開始前播放圖片/視頻時加一個鏈接地址 t:1,//視頻開始前播放swf/圖片時的時間 e:3,//視頻結束後的動作,0是調用js函數,1是循環播放,2是暫停播放,3是調用視頻推薦列表的插件 v:85,//默認音量,0-100之間 p:1,//視頻默認0是暫停,1是播放 h:1,//播放http視頻流時采用何種拖動方法,0是按關鍵幀,1是按關鍵時間點 q:‘‘,//視頻流拖動時參考函數,默認是start m:0,//默認是否采用點擊播放按鈕後再加載視頻,0不是,1是,設置成1時不要有前置廣告 g:‘‘,//視頻直接g秒開始播放 j:‘‘,//視頻提前j秒結束 k:10|40|80,//提示點時間,如 30|60鼠標經過進度欄30秒,60秒會提示n指定的相應的文字 n:跳過開頭|小企鵝寶寶下水了|跳過結尾,//提示點文字,跟k配合使用,如 提示點1|提示點2 b:0x000,//播放器的背景色,如果不設置的話將默認透明 w:‘‘,//指定調用自己配置的文本文件,不指定將默認調用和播放器同名的txt文件 //調用播放器的所有參數列表結束 //以下為自定義的播放器參數用來在插件裏引用的 my_title:視頻標題,//視頻標題 my_url:http://www.ckplayer.com/index.php,//本頁面地址 my_summary:這是一個測試頁面,//視頻介紹,請保持在一行文字,不要換行 my_pic:http://www.ckplayer.com/temp/11.jpg//分享的圖片地址 //調用自定義播放器參數結束

因為剛下的技術分享 裏面的一些參數是他定義的,你需要改變播放頁面的一些設置可以去修改他的js代碼,每一個參數都有說明,仔細閱讀就好了。

插件的調用

查看文檔

下載好插件,

①把 style.swf 改成zip的格式

②把你下載好的.swf添加到 style.zip裏面,然後把後綴名改回來。

③ 打開你的ckplayer.js 把插件代碼加入

技術分享

④添加參數,還是在js裏面

技術分享

⑤初始化,清空cookie瀏覽

  var flashvars = {
                f: videoSrc,
                a: ‘‘,
                deft: 標清,高清,超清,, //配置文件裏有,則不需要再設置
                deff: /Video/1_0.mp4?t=1|/Video/1_0.mp4?t=2|/Video/1_0.mp4?t=3,  //後面註意帶參數
                c: 0
}

效果:

技術分享

註:你可以在案例的網站裏面把他的案例代碼扣出來,照著文檔來寫,把案例裏面的代碼復制出來。

格式轉化 -->轉 FLV

官網:查看

之前也說了,PC端存FLV格式,當然需要把格式轉成FLV格式的。 這個進程還可以視頻截圖,很對的用法執行網上搜索。

這裏需要一個程序(進程),FFMPEG

定義: 可以將一種視頻格式(包括封轉格式和編碼格式)轉換為另一種視頻格式。轉碼器在視音頻編解碼處理的程序中,屬於一個比較復雜的東西。因為它結合了視頻的解碼和編碼。一個視頻播放器,一般只包含解碼功能;一個視頻編碼工具,一般只包含編碼功能;而一個視頻轉碼器,則需要先對視頻進行解碼,然後再對視頻進行編碼,因而相當於解碼器和編碼器的結合。

①下載 FFMPEG.exe

查看下載

②轉化方法,第一個參數是你需要轉換視頻的路徑(傳的值是服務器的路徑),第二個參數是一個格式為 flv的視頻(已存在,需要自己準備一個)。根據自己修改也可以改成絕對地址。

這個方法是活的,你只用把最最後的那段啟動程序的代碼保留,其余的自己寫。

    #region 視頻格式轉為Flv
        /// <summary>
        /// 視頻格式轉為Flv
        /// </summary>
        /// <param name="vFileName">原視頻文件地址</param>
        /// <param name="ExportName">生成後的Flv文件地址</param>
        public bool ConvertFlv(string vFileName, string ExportName)
        {
            string ffmpegtool = Server.MapPath("~/Flv/ffmpeg.exe"); //你的ffmpeg.exe絕對路徑

            if ((!System.IO.File.Exists(ffmpegtool)) || (!System.IO.File.Exists(Server.MapPath(vFileName))))
            {
                return false;
            }
//可以添加一個flv格式的視頻做模板,每次用的時候把視頻Copy到另一個文件夾去轉換,這裏沒有這樣寫,可以自己修改 vFileName
= Server.MapPath(vFileName); ExportName = Server.MapPath(ExportName); //別的格式轉flv格式 命令 string Command = " -i \"" + vFileName + "\" -y -ab 32 -ar 22050 -b 800000 -s 480*360 \"" + ExportName + "\""; //Flv格式 //轉mp4格式 flv->mp4成功 不能用video播放,可以用播放器使用 string aa3 = $"-i {vFileName} -y -b 1024k -acodec copy -f mp4 {ExportName}"; System.Diagnostics.Process p = new System.Diagnostics.Process(); //利用Pocess啟動應用程序 p.StartInfo.FileName = ffmpegtool; //地址 p.StartInfo.Arguments = Command;//命名行 p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = false; p.Start(); p.BeginErrorReadLine(); p.WaitForExit(); p.Close(); p.Dispose(); return true; } #endregion

③傳遞參數,這是根據你的上面的方法來進行傳值,註意路徑

   protected async void Button1_Click(object sender, EventArgs e)
        {
Stopwatch sw
= new Stopwatch(); await Task.Run(() => { HttpPostedFile hf = Request.Files["FileUpload1"]; string path = Path.Combine(Server.MapPath("~/Upload/"), hf.FileName); hf.SaveAs(path); if (ConvertFlv("~/Upload/" + hf.FileName, "~/Upload2/Test.flv")) { Response.Write("成功:" + sw.ElapsedMilliseconds / 1000.0 + " s"); } else { Response.Write("失敗"); } }); }

這樣就可以了。

//參數說明  FFMPEG
    /*
        * -i filename(input) 源文件目錄
        * -y 輸出新文件,是否強制覆蓋已有文件
        * -c 指定編碼器 
        * -fs limit_size(outinput) 設置文件大小的限制,以字節表示的。沒有進一步的字節塊被寫入後,超過極限。輸出文件的大小略大於所請求的文件大小。
        * -s 視頻比例  4:3 320x240/640x480/800x600  16:9  1280x720 ,默認值 ‘wxh‘,和原視頻大小相同
        * -vframes number(output) 將視頻幀的數量設置為輸出。別名:-frames:v
        * -dframes number (output) 將數據幀的數量設置為輸出.別名:-frames:d
        * -frames[:stream_specifier] framecount (output,per-stream) 停止寫入流之後幀數幀。
        * -bsf[:stream_specifier] bitstream_filters (output,per-stream)  指定輸出文件流格式,
    例如輸出h264編碼的MP4文件:ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
        * -r 29.97 楨速率(可以改,確認非標準楨率會導致音畫不同步,所以只能設定為15或者29.97) 
        * 
        */

轉MP4格式 待

ckplayer插件播放視頻