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

php使用ffmpeg獲取視頻信息并截圖的實現(xiàn)方法

 更新時間:2016年05月03日 09:56:55   作者:懶人  
這篇文章主要介紹了php使用ffmpeg獲取視頻信息并截圖的實現(xiàn)方法,實例分析了php操作視頻與圖像的相關技巧,需要的朋友可以參考下

本文實例講述了php使用ffmpeg獲取視頻信息并截圖的方法。分享給大家供大家參考,具體如下:

$movie = new ffmpeg_movie('4.mp4');
$width=$movie->getFrameWidth();
$height=$movie->getFrameHeight();
$count= $movie->getFrameCount();
print $count . '';
$n = round ( $count/16 );
print $n . '';
for ( $i = 1; $i <= 1; $i ++ ) {
  $img = 'screencap' . $i . '.png';
  $x = $n * $i;
  $f = $movie->getFrame($x);
  $gd_image = $f->toGDImage();
  imagepng($gd_image, $img);
  imagedestroy($gd_image);
  echo "
\n";
}
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
// load extension
if (!extension_loaded($extension)) {
  dl($extension_soname) or die("Can't load extension $extension_fullname\n");
}
if (php_sapi_name() != 'cli') {
  echo '
';
}
printf("ffmpeg-php version string: %s\n", FFMPEG_PHP_VERSION_STRING);
printf("ffmpeg-php build date string: %s\n", FFMPEG_PHP_BUILD_DATE_STRING);
printf("libavcodec build number: %d\n", LIBAVCODEC_BUILD_NUMBER);
printf("libavcodec version number: %d\n", LIBAVCODEC_VERSION_NUMBER);
print_class_methods("ffmpeg_movie");
print_class_methods("ffmpeg_frame");
// get an array for movies from the test media directory
$movies = getDirFiles(dirname(__FILE__) . '/tests/test_media');
echo "--------------------\n\n";
foreach($movies as $movie) {
  $mov = new ffmpeg_movie($movie);
  printf("file name = %s\n", $mov->getFileName());
  printf("duration = %s seconds\n", $mov->getDuration());
  printf("frame count = %s\n", $mov->getFrameCount());
  printf("frame rate = %0.3f fps\n", $mov->getFrameRate());
  printf("comment = %s\n", $mov->getComment());
  printf("title = %s\n", $mov->getTitle());
  printf("author = %s\n", $mov->getAuthor());
  printf("copyright = %s\n", $mov->getCopyright());
  printf("get bit rate = %d\n", $mov->getBitRate());
  printf("has audio = %s\n", $mov->hasAudio() == 0 ? 'No' : 'Yes');
  if ($mov->hasAudio()) {
    printf("get audio stream id= %s\n", $mov->getAudioStreamId());
    printf("get audio codec = %s\n", $mov->getAudioCodec());
    printf("get audio bit rate = %d\n", $mov->getAudioBitRate());
    printf("get audio sample rate = %d \n", $mov->getAudioSampleRate());
    printf("get audio channels = %s\n", $mov->getAudioChannels());
  }
  printf("has video = %s\n", $mov->hasVideo() == 0 ? 'No' : 'Yes');
  if ($mov->hasVideo()) {
    printf("frame height = %d pixels\n", $mov->getFrameHeight());
    printf("frame width = %d pixels\n", $mov->getFrameWidth());
    printf("get video stream id= %s\n", $mov->getVideoStreamId());
    printf("get video codec = %s\n", $mov->getVideoCodec());
    printf("get video bit rate = %d\n", $mov->getVideoBitRate());
    printf("get pixel format = %s\n", $mov->getPixelFormat());
    printf("get pixel aspect ratio = %s\n", $mov->getPixelAspectRatio());
    $frame = $mov->getFrame(10);
    printf("get frame = %s\n", is_object($frame) ? 'true' : 'false');
    printf(" get frame number = %d\n", $mov->getFrameNumber());
    printf(" get frame width = %d\n", $frame->getWidth());
    printf(" get frame height = %d\n", $frame->getHeight());
  }
  echo "\n--------------------\n\n";
}
if (php_sapi_name() != 'cli') {
  echo '';
}
/* FUNCTIONS */
function print_class_methods($class) {
  echo "\nMethods available in class '$class':\n";
  $methods = get_class_methods($class);
  if (is_array($methods)) {
    foreach($methods as $method) {
      echo $method . "\n";
    }
  } else {
    echo "No Methods Defined\n";
  }
}
function getDirFiles($dirPath)
{
  if ($handle = opendir($dirPath))
  {
    while (false !== ($file = readdir($handle))) {
      $fullpath = $dirPath . '/' . $file;
      if (!is_dir($fullpath) && $file != "CVS" && $file != "." && $file != "..")
        $filesArr[] = trim($fullpath);
    }
    closedir($handle);
  }
  return $filesArr;
}
?>

運行效果如下圖所示:

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《php操作office文檔技巧總結(包括word,excel,access,ppt)》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設計有所幫助。

相關文章

  • PHP數(shù)組對象與Json轉換操作實例分析

    PHP數(shù)組對象與Json轉換操作實例分析

    這篇文章主要介紹了PHP數(shù)組對象與Json轉換操作,結合實例形式分析了php數(shù)組對象與json相互轉換的實現(xiàn)方法及相關操作技巧,需要的朋友可以參考下
    2019-10-10
  • PHP引用的調用方法分析

    PHP引用的調用方法分析

    這篇文章主要介紹了PHP引用的調用方法,結合實例形式分析了PHP中引用的常見調用技巧,需要的朋友可以參考下
    2016-04-04
  • PHP中執(zhí)行MYSQL事務解決數(shù)據(jù)寫入不完整等情況

    PHP中執(zhí)行MYSQL事務解決數(shù)據(jù)寫入不完整等情況

    事務可以進行模擬SQL操作,當所有的SQL都操作成功的時候才進行SQL操作,只要有一個操作失敗就回滾當前事務的所有SQL操作,避免出現(xiàn)上面描述中出現(xiàn)的數(shù)據(jù)寫入不完整等情況
    2014-01-01
  • PHP中常用的魔術方法總結

    PHP中常用的魔術方法總結

    PHP把所有”__”開頭的方法當做魔術方法,這篇文章主要為大家介紹了PHP中常用的幾個魔術方法,文中示例代碼講解詳細,需要的可以參考一下
    2022-08-08
  • PHP使用TCPDF處理pdf

    PHP使用TCPDF處理pdf

    TCPDF是一個開源的PHP庫,用于創(chuàng)建和處理PDF文件,這篇文章主要為大家詳細介紹了PHP如何使用TCPDF進行pdf的相關操作,需要的小伙伴可以參考下
    2023-12-12
  • PHP中opcode緩存簡單用法分析

    PHP中opcode緩存簡單用法分析

    這篇文章主要介紹了PHP中opcode緩存簡單用法,結合實例形式分析了opcode的概念、原理、簡單開啟與使用方法,需要的朋友可以參考下
    2018-03-03
  • PHP 調試工具Debug Tools

    PHP 調試工具Debug Tools

    發(fā)現(xiàn)了個調試PHP源碼的好同志: PHP DEBUG TOOLS,需要的朋友可以參考下。
    2011-04-04
  • PHP實現(xiàn)搜索相似圖片

    PHP實現(xiàn)搜索相似圖片

    感知哈希的優(yōu)點是簡單快速,不受圖片大小縮放的影響,缺點是圖片的內容不能變更。實際應用中,往往采用更強大的pHash算法和SIFT算法,它們能夠識別圖片的變形。只要變形程度不超過25%,它們就能匹配原圖。
    2015-09-09
  • 功能強大的php分頁函數(shù)

    功能強大的php分頁函數(shù)

    這篇文章主要為大家分享了功能強大的php分頁函數(shù),為php初學者分析一下php分頁實現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 分享一則PHP定義函數(shù)代碼

    分享一則PHP定義函數(shù)代碼

    這篇文章主要介紹了分享一則PHP定義函數(shù)代碼,主要是讓大家熟悉下php的語法格式以及php中插入HTML代碼的方式,希望能夠給到大家一些幫助。
    2015-02-02

最新評論