PHP+FFMPEG實現將視頻自動轉碼成H264標準Mp4檔案

來源:互聯網
上載者:User

PHP+FFMPEG實現將視頻自動轉碼成H264標準Mp4檔案,

配置php.ini檔案

file_uploads = on ;//是否允許通過HTTP上傳檔案的開關。預設為ON即是開upload_tmp_dir ;//檔案上傳至伺服器上儲存臨時檔案的地方,如果沒指定就會用系統預設的臨時檔案夾upload_max_filesize = 1024m ;//望文生意,即允許上傳檔案大小的最大值。預設為2M,我們設定為1Gpost_max_size = 1024m ;//指通過表單POST給PHP的所能接收的最大值,我們也設定為1Gmax_execution_time = 3600 ;//每個PHP頁面啟動並執行最大時間值(秒),預設30秒,設定為一小時,因為後面轉碼時間很久。max_input_time = 36000 ;//每個PHP頁面接收資料所需的最大時間,預設60秒memory_limit = 8m ;//每個PHP頁面所吃掉的最大記憶體,預設8M

檔案上傳外掛程式

火焰雨推薦大家使用uploadify,Uploadify是JQuery的一個上傳外掛程式,實現帶進度顯示。外掛程式安裝簡單,此處略過。
但是有個問題需要注意,非IE瀏覽器session會丟失,查了很多資料,最終總結的原因是:

因為諸如uploadify採用的是flash用戶端,它產生的useragent與瀏覽器的user-agent不同。

最終解決辦法:

//在upmodify上傳參數中加入session參數,如下:scriptData: {"SESSION_ID":""},// 在服務端接收頁面加入以下代碼:if(@$_REQUEST['SESSION_ID'] && ($session_id=$_REQUEST['SESSION_ID']) !=session_id()){session_destroy();session_id($session_id);@session_start(); }

這樣就解決了 FLASH 不能正確傳遞頁面

視頻格式轉換

現在Linux下比較流行的視頻格式轉換軟體是FFMPEG,FFMPEG是用於錄製、、轉換和流化音頻和視頻的完整解決方案,一套領先的音/視頻編解碼類庫。除了FFMPEG外,我們要轉碼成H264格式 ,還需要一個擴充。(文章最後給出所有軟體包下載地址)

centos 5.4環境下安裝源碼安裝h264擴充

tar -xjvf x264-snapshot-20120718-2245-stable.tar.bz2 #進入解壓後的源檔案目錄 cd x264-snapshot-20120718-2245-stable/ ./configure --prefix=/usr/local --enable-shared makemake install//centos 5.4環境下安裝源碼安裝ffmpeg with h264擴充tar -xjvf ffmpeg-2.1.1.tar.bz2//進入解壓後目錄 cd ffmpeg-2.1.1./configure --enable-gpl --enable-libx264makemake install//重新載入配置lcfonfig //測試是否安裝成功ffmpeg

如果你看到以下內容說明安裝成功:

ffmpeg version 2.1.1 Copyright (c) 2000-2013 the FFmpeg developersbuilt on Dec 17 2013 23:32:40 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)configuration: --enable-libx264 --enable-gpllibavutil 52. 48.101 / 52. 48.101libavcodec 55. 39.101 / 55. 39.101libavformat 55. 19.104 / 55. 19.104libavdevice 55. 5.100 / 55. 5.100libavfilter 3. 90.100 / 3. 90.100libswscale 2. 5.101 / 2. 5.101libswresample 0. 17.104 / 0. 17.104libpostproc 52. 3.100 / 52. 3.100Hyper fast Audio and Video encoderusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...Use -h to get full help or, even better, run 'man ffmpeg'

php調用ffmpeg轉碼視頻

$cmd = 'FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 uploadfile/mp4/test.mp4';exec($cmd, $status);

運行前請確認exec函數已經開啟。否則請修改php.ini檔案

最後附上FFMPEG+H264擴充+YASM+apache_mod_h264

相關文章:

PHP實現將視頻轉成MP4並擷取視頻預覽圖的方法

php使用memcoder將視頻轉成mp4格式的方法

php下載flv檔案或者mp4檔案無法播放

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.