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

php截取視頻指定幀為圖片

 更新時間:2016年05月16日 21:29:03   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了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命令行獲?。?/p>

/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,如果你想對視頻進(jìn)行旋轉(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判斷遠(yuǎn)程圖片或文件是否存在的實現(xiàn)代碼

    PHP判斷遠(yuǎn)程圖片或文件是否存在的實現(xiàn)代碼

    本篇文章主要是對PHP判斷遠(yuǎn)程圖片或文件是否存在的實現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫操作實現(xiàn)方法圖文詳解

    PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫操作實現(xiàn)方法圖文詳解

    這篇文章主要介紹了PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫操作實現(xiàn)方法,結(jié)合圖文形式詳細(xì)分析了php連接Oracle數(shù)據(jù)庫的相關(guān)配置、實現(xiàn)方法、遇到的問題、解決方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-04-04
  • php設(shè)計模式之裝飾模式應(yīng)用案例詳解

    php設(shè)計模式之裝飾模式應(yīng)用案例詳解

    這篇文章主要介紹了php設(shè)計模式之裝飾模式,結(jié)合具體應(yīng)用案例形式詳細(xì)分析了php裝飾模式的概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-06-06
  • php操作mongodb封裝類與用法實例

    php操作mongodb封裝類與用法實例

    這篇文章主要介紹了php操作mongodb封裝類與用法,結(jié)合具體實例形式分析了php定義的MongoDB操作封裝類與相關(guān)的類實例化、查詢、更新等使用技巧,需要的朋友可以參考下
    2018-09-09
  • 淺談COOKIE和SESSION區(qū)別

    淺談COOKIE和SESSION區(qū)別

    在PHP面試中經(jīng)常碰到請闡述session與cookie的區(qū)別與聯(lián)系,以及如何修改兩者的有效時間。具體來說cookie機制采用的是在客戶端保持狀態(tài)的方案,而session機制采用的是在服務(wù)器端保持狀態(tài)的方案。
    2015-07-07
  • php中file_get_contents()函數(shù)用法實例

    php中file_get_contents()函數(shù)用法實例

    在本文中我們給大家整理了關(guān)于php中file_get_contents()函數(shù)的相關(guān)用法,需要的朋友們學(xué)習(xí)參考下。
    2019-02-02
  • VIM中設(shè)置php自動縮進(jìn)為4個空格的方法詳解

    VIM中設(shè)置php自動縮進(jìn)為4個空格的方法詳解

    本篇文章是對VIM中設(shè)置php自動縮進(jìn)為4個空格的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP下編碼轉(zhuǎn)換函數(shù)mb_convert_encoding與iconv的使用說明

    PHP下編碼轉(zhuǎn)換函數(shù)mb_convert_encoding與iconv的使用說明

    mb_convert_encoding這個函數(shù)是用來轉(zhuǎn)換編碼的。原來一直對程序編碼這一概念不理解,不過現(xiàn)在好像有點開竅了。
    2009-12-12
  • php自定義hash函數(shù)實例

    php自定義hash函數(shù)實例

    這篇文章主要介紹了php自定義hash函數(shù),實例分析了hash函數(shù)的實現(xiàn)技巧,可實現(xiàn)簡單的加密功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • php鏈?zhǔn)讲僮鞯膶崿F(xiàn)方式分析

    php鏈?zhǔn)讲僮鞯膶崿F(xiàn)方式分析

    這篇文章主要介紹了php鏈?zhǔn)讲僮鞯膶崿F(xiàn)方式,結(jié)合實例形式對比分析了常規(guī)調(diào)用與鏈?zhǔn)秸{(diào)用操作的相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2019-08-08

最新評論

朔州市| 穆棱市| 石楼县| 集安市| 威宁| 通榆县| 彩票| 灌阳县| 铜川市| 淮阳县| 广东省| 蒙阴县| 乌恰县| 大同市| 芮城县| 永登县| 台南县| 金溪县| 平遥县| 原平市| 枝江市| 孝感市| 灵石县| 阳原县| 南川市| 南木林县| 法库县| 宜川县| 阳新县| 诸暨市| 泗阳县| 宜丰县| 依安县| 桐梓县| 肇州县| 礼泉县| 芮城县| 永城市| 卢龙县| 泗阳县| 九台市|