最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年09月24日 16:10:51   投稿:hebedich  
最近做一個在線教學網的項目,需要實現上傳任意格式視頻自動為h264標準視頻,使用html5播放。最終使用PHP+FFMPEG實現,在此將詳細解決方案分享給大家!

配置php.ini文件

復制代碼 代碼如下:

file_uploads = on ;//是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir ;//文件上傳至服務器上存儲臨時文件的地方,如果沒指定就會用系統(tǒng)默認的臨時文件夾
upload_max_filesize = 1024m ;//望文生意,即允許上傳文件大小的最大值。默認為2M,我們設置為1G
post_max_size = 1024m ;//指通過表單POST給PHP的所能接收的最大值,我們也設置為1G

max_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環(huán)境下安裝源碼安裝h264擴展

復制代碼 代碼如下:

tar -xjvf x264-snapshot-20120718-2245-stable.tar.bz2
  #進入解壓后的源文件目錄
  cd x264-snapshot-20120718-2245-stable/
  ./configure --prefix=/usr/local --enable-shared
  make
  make install

 //centos 5.4環(huán)境下安裝源碼安裝ffmpeg with h264擴展
 tar -xjvf ffmpeg-2.1.1.tar.bz2
 //進入解壓后目錄
 cd ffmpeg-2.1.1
 ./configure --enable-gpl --enable-libx264
 make
 make install
 //重新加載配置
 lcfonfig
 //測試是否安裝成功
 ffmpeg

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

復制代碼 代碼如下:

ffmpeg version 2.1.1 Copyright (c) 2000-2013 the FFmpeg developers
 built on Dec 17 2013 23:32:40 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
 configuration: --enable-libx264 --enable-gpl
 libavutil 52. 48.101 / 52. 48.101
 libavcodec 55. 39.101 / 55. 39.101
 libavformat 55. 19.104 / 55. 19.104
 libavdevice 55. 5.100 / 55. 5.100
 libavfilter 3. 90.100 / 3. 90.100
 libswscale 2. 5.101 / 2. 5.101
 libswresample 0. 17.104 / 0. 17.104
 libpostproc 52. 3.100 / 52. 3.100
 Hyper fast Audio and Video encoder
 usage: 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通過curl模擬登陸DZ論壇

    php通過curl模擬登陸DZ論壇

    本文章來給各位同學介紹一下關于Php CURL模擬登陸論壇并采集數據實例,如果你對利用curl模擬登錄功能有興趣可進入參考。
    2015-05-05
  • PHP判斷指定時間段的2個方法

    PHP判斷指定時間段的2個方法

    有時我們需要在一天中的某個時間段進行某項任務,或者在一天中的不同小時里進行不同的任務,使用PHP如何實現呢,下面的兩個例子都可以解決這個問題
    2014-03-03
  • Yii2實現log輸出到file及database的方法

    Yii2實現log輸出到file及database的方法

    這篇文章主要介紹了Yii2實現log輸出到file及database的方法,結合實例形式分析了Yii2日志輸出到文件及數據庫的相關設置與實現技巧,需要的朋友可以參考下
    2016-11-11
  • Zend Framework教程之Zend_Helpers動作助手ViewRenderer用法詳解

    Zend Framework教程之Zend_Helpers動作助手ViewRenderer用法詳解

    這篇文章主要介紹了Zend Framework教程之Zend_Helpers動作助手ViewRenderer用法,結合實例形式較為詳細的分析了Zend_Helpers動作助手ViewRenderer的功能、使用方法與相關注意事項,需要的朋友可以參考下
    2016-07-07
  • ci檢測是ajax還是頁面post提交數據的方法

    ci檢測是ajax還是頁面post提交數據的方法

    這篇文章主要介紹了ci檢測是ajax還是頁面post提交數據的方法,以PHP的環(huán)境變量為基礎實例展示了針對CI框架配置文件的修改技巧,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • thinkPHP導出csv文件及用表格輸出excel的方法

    thinkPHP導出csv文件及用表格輸出excel的方法

    這篇文章主要介紹了thinkPHP導出csv文件及用表格輸出excel的方法,涉及thinkPHP針對表格與Excel文件的操作技巧,需要的朋友可以參考下
    2015-12-12
  • PHP中is_dir()函數使用指南

    PHP中is_dir()函數使用指南

    php提供內置函數is_dir來檢查傳入的路徑參數是否為目錄,如果是目錄則返回true。也就是說傳入的參數是文件或者不存在都為false,因此當前參數不能說不是文件夾就是文件。另外需要注意的是參數支持相對路徑和絕對路徑。
    2015-05-05
  • Laravel日志用法詳解

    Laravel日志用法詳解

    這篇文章主要介紹了Laravel日志用法,結合實例形式較為詳細的分析了Laravel日志的功能、定義、使用方法與相關注意事項,需要的朋友可以參考下
    2016-10-10
  • php中的explode()函數實例介紹

    php中的explode()函數實例介紹

    在本篇文章里小編給大家分享了關于php中的explode()函數實例知識點內容,有興趣的朋友們學習下。
    2019-01-01
  • PHP設計模式之觀察者模式實例

    PHP設計模式之觀察者模式實例

    一個對象通過添加一個方法(該方法允許另一個對象,即觀察者 注冊自己)使本身變得可觀察。當可觀察的對象更改時,它會將消息發(fā)送到已注冊的觀察者。通過本文給大家介紹PHP設計模式之觀察者模式,需要的朋友參考下
    2016-02-02

最新評論

郁南县| 桐城市| 巢湖市| 枣阳市| 辛集市| 阿克苏市| 泾源县| 资源县| 紫阳县| 霍州市| 大宁县| 定结县| 广平县| 昌宁县| 庄浪县| 那曲县| 万盛区| 肥城市| 建瓯市| 梅河口市| 淮南市| 浦城县| 格尔木市| 鞍山市| 武隆县| 曲阳县| 晴隆县| 翁源县| 景东| 栾川县| 金塔县| 绥滨县| 延安市| 寿宁县| 顺昌县| 凭祥市| 陇南市| 邢台县| 寿阳县| 永城市| 信宜市|