php實現截取視頻指定幀為圖片的方法

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了php截取視頻指定幀為圖片的相關資料,需要的朋友可以參考下

截取視頻指定幀為圖片,php ffmpeg擴充已經完美實現:

$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);

然而問題來了,智能手機拍攝的視頻,由於拍攝方向不同,視頻會被旋轉,並帶上meta資訊rotate,當你相對視頻截取frame圖片的時候,如果有rotate資訊的視頻,frame也是旋轉的,因此你需要將截取的圖片相應的旋轉。

然後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()函數就可以旋轉:

$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,如果你想對視頻進行旋轉,可通過ffmpeg命令解決:

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

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.