欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php截取視頻指定幀為圖片

 更新時間:2016年05月16日 21:29:03   投稿:lijiao  
這篇文章主要為大家詳細介紹了php截取視頻指定幀為圖片的相關(guān)資料,需要的朋友可以參考下

截取視頻指定幀為圖片,php ffmpeg擴展已經(jīng)完美實現(xiàn):

$movie = new ffmpeg_movie($video_filePath);
$ff_frame = $movie->getFrame(1);
$gd_image = $ff_frame->toGDImage();
$img="./test.jpg";
imagejpeg($gd_image, $img);
imagedestroy($gd_image);

然而問題來了,智能手機拍攝的視頻,由于拍攝方向不同,視頻會被旋轉(zhuǎn),并帶上meta信息rotate,當(dāng)你相對視頻截取frame圖片的時候,如果有rotate信息的視頻,frame也是旋轉(zhuǎn)的,因此你需要將截取的圖片相應(yīng)的旋轉(zhuǎn)。

然后php ffmpeg擴展并無法獲知rotation信息(php ffmpeg擴展文檔),但可以通過ffmpeg命令行獲取:

/usr/local/ffmpeg/bin/ffprobe test.mp4 -show_streams  | grep rotate
用php簡單封裝下如下:

function get_video_orientation($video_path) {
  $cmd = "/usr/local/ffmpeg/bin/ffprobe " . $video_path . " -show_streams 2>/dev/null";
  $result = shell_exec($cmd);
 
  $orientation = 0;
  if(strpos($result, 'TAG:rotate') !== FALSE) {
    $result = explode("\n", $result);
    foreach($result as $line) {
      if(strpos($line, 'TAG:rotate') !== FALSE) {
        $stream_info = explode("=", $line);
        $orientation = $stream_info[1];
      }
    }
  }
  return $orientation;
}

使用imagerotate()函數(shù)就可以旋轉(zhuǎn)截圖:

$movie = new ffmpeg_movie($video_filePath);
$frame = $movie->getFrame(1);
$gd = $frame->toGDImage();
if ($orientation = $this->get_video_orientation($video_filePath)) {
  $gd = imagerotate($gd, 360-$orientation, 0);
}
$img="./test.jpg";
imagejpeg($gd, $img);
imagedestroy($gd_image);

最后還有一個麻煩事,不是所有的播放器和瀏覽器都可對video識別orientation并自動rotate,如果你想對視頻進行旋轉(zhuǎn),可通過ffmpeg命令解決:

/usr/local/ffmpeg/bin/ffmpeg -i input.mp4 -vf 'transpose=3' -metadata:s:v:0 rotate=0

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)php程序設(shè)計有所幫助。

相關(guān)文章

  • php開啟多進程的方法

    php開啟多進程的方法

    這篇文章主要介紹了php開啟多進程的方法,實例分析了php線程的使用技巧,需要的朋友可以參考下
    2015-03-03
  • php多個字符串替換成同一個的解決方法

    php多個字符串替換成同一個的解決方法

    本篇文章是對php多個字符串替換成同一個的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 深入理解:XML與對象的序列化與反序列化

    深入理解:XML與對象的序列化與反序列化

    本篇文章是對XML與對象的序列化與反序列化進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 降低PHP Redis內(nèi)存占用

    降低PHP Redis內(nèi)存占用

    本文主要介紹了降低PHP Redis內(nèi)存占用的方法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • php將數(shù)據(jù)庫導(dǎo)出成excel的方法

    php將數(shù)據(jù)庫導(dǎo)出成excel的方法

    有時寫程序時后臺要求把大量數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中,比如考試成績、電話簿等一般都是存放在excel中的數(shù)據(jù),這時我們可把excel導(dǎo)出成csv文件,然后通過以下程序即可批量導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫中
    2010-05-05
  • php基于單例模式封裝mysql類完整實例

    php基于單例模式封裝mysql類完整實例

    這篇文章主要介紹了php基于單例模式封裝mysql類,結(jié)合完整實例形式分析了php使用單例模式封裝的mysql類定義與使用方法,需要的朋友可以參考下
    2016-10-10
  • PHP轉(zhuǎn)盤抽獎接口實例

    PHP轉(zhuǎn)盤抽獎接口實例

    這篇文章主要介紹了PHP轉(zhuǎn)盤抽獎接口的實現(xiàn)方法,實例分析了隨機抽獎接口的實現(xiàn)原理與對應(yīng)數(shù)據(jù)庫操作的技巧,需要的朋友可以參考下
    2015-02-02
  • php實現(xiàn)刪除空目錄的方法

    php實現(xiàn)刪除空目錄的方法

    這篇文章主要介紹了php實現(xiàn)刪除空目錄的方法,實例分析了rmdir函數(shù)的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • php遍歷解析xml字符串的方法

    php遍歷解析xml字符串的方法

    這篇文章主要介紹了php遍歷解析xml字符串的方法,涉及php基于SimpleXMLElement類實現(xiàn)對xml文件的讀取、遍歷與解析的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2016-05-05
  • php的RSA加密解密算法原理與用法分析

    php的RSA加密解密算法原理與用法分析

    這篇文章主要介紹了php的RSA加密解密算法原理與用法,結(jié)合實例形式分析了rsa加密解密算法的相關(guān)概念、原理及PHP使用RSA加密解密算法的具體實現(xiàn)技巧,需要的朋友可以參考下
    2020-01-01

最新評論