Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Beispielcode für die Verwendung von FFmpeg, um Informationen wie die gesamte Videowiedergabedauer und die Bitrate zu erhalten

PHP-Beispielcode für die Verwendung von FFmpeg, um Informationen wie die gesamte Videowiedergabedauer und die Bitrate zu erhalten

怪我咯
怪我咯Original
2017-07-12 10:41:562345Durchsuche

FFmpeg ist eine Reihe von Open-Source-Computerprogrammen, mit denen digitale Audio- und Videodaten aufgezeichnet, konvertiert und in Streams umgewandelt werden können. Verwenden Sie eine LGPL- oder GPL-Lizenz. Es bietet eine Komplettlösung zum Aufzeichnen, Konvertieren und Streamen von Audio und Video. Es enthält die sehr fortschrittliche Audio-/Video-Codec-Bibliothek libavcodec. Um eine hohe Portabilität und Codec-Qualität zu gewährleisten, wurden viele Codes in libavcodec von Grund auf neu entwickelt. In diesem Artikel erfahren Sie, wie Sie mit FFmpeg in PHP Informationen wie Videowiedergabedauer und Bitrate lesen können. Schauen wir uns unten um.

Bitte beachten Sie: In diesem Artikel wird Durchgang verwendet und einige virtuelle Hosts deaktivieren diesen Befehl möglicherweise.

Der Code lautet wie folgt:

PHP

<?php
define(&#39;FFMPEG_PATH&#39;, &#39;/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1&#39;);
 
function getVideoInfo($file) {
  
  $command = sprintf(FFMPEG_PATH, $file);
  
  ob_start();
  passthru($command);
  $info = ob_get_contents();
  ob_end_clean();
  
  $data = array();
  if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
    $data[&#39;duration&#39;] = $match[1]; //播放时间
    $arr_duration = explode(&#39;:&#39;, $match[1]);
    $data[&#39;seconds&#39;] = $arr_duration[0] * 3600 + $arr_duration[1] * 60 + $arr_duration[2]; //转换播放时间为秒数
    $data[&#39;start&#39;] = $match[2]; //开始时间
    $data[&#39;bitrate&#39;] = $match[3]; //码率(kb)
  }
  if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/", $info, $match)) {
    $data[&#39;vcodec&#39;] = $match[1]; //视频编码格式
    $data[&#39;vformat&#39;] = $match[2]; //视频格式
    $data[&#39;resolution&#39;] = $match[3]; //视频分辨率
    $arr_resolution = explode(&#39;x&#39;, $match[3]);
    $data[&#39;width&#39;] = $arr_resolution[0];
    $data[&#39;height&#39;] = $arr_resolution[1];
  }
  if (preg_match("/Audio: (\w*), (\d*) Hz/", $info, $match)) {
    $data[&#39;acodec&#39;] = $match[1]; //音频编码
    $data[&#39;asamplerate&#39;] = $match[2]; //音频采样频率
  }
  if (isset($data[&#39;seconds&#39;]) && isset($data[&#39;start&#39;])) {
    $data[&#39;play_time&#39;] = $data[&#39;seconds&#39;] + $data[&#39;start&#39;]; //实际播放时间
  }
  $data[&#39;size&#39;] = filesize($file); //文件大小
  return $data;
}
 
//用法
$video_info = getVideoInfo(&#39;video.mp4&#39;);
print_r($video_info);
?>

Das obige ist der detaillierte Inhalt vonPHP-Beispielcode für die Verwendung von FFmpeg, um Informationen wie die gesamte Videowiedergabedauer und die Bitrate zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn