3

ポップアップで .mp4 拡張子のファイルを開く必要があります。それはうまく機能しており、他のすべてのことは完璧に行われています。しかし、そのポップアップが開いているとき。その際、動画と同じ高さと幅で開きたいです。私のページには25本以上のビデオがあります。そのため、そのパラメーターをコードに保存し、ポップアップを開くときにそれを JavaScript で使用します。そのため、そのファイルを再生する前に、ビデオファイルの幅と高さを知りたいです。これらのパラメータをphpで知りたいです。

4

3 に答える 3

3

php-mp4infoライブラリを試してください。

include("MP4Info.php");
$info = MP4Info::getInfo('directory/to/file.mp4');
if($info->hasVideo) {
  echo $info->video->width . ' x ' . $info->video->height;
}

$info オブジェクトは、たとえば次のようになります。

stdClass Object
(
  [hasVideo] => 1
  [hasAudio] => 1
  [video] => stdClass Object
    (
      [width] => 480
      [height] => 272
      [codec] => 224
      [codecStr] => H.264
    )
  [audio] => stdClass Object
    (
      [codec] => 224
      [codecStr] => AAC
    )
  [duration] => 6
)
于 2012-11-05T20:25:46.080 に答える
3

FF-MPEGを使用してみてください。システムコールを介して、またはそこにあるPHP用のFF-MPEG拡張機能を使用して使用できますhttp://ffmpeg-php.sourceforge.net/

FF-MPEG-PHP を使用してビデオからメタ情報を取得する方法は次のとおりです。

$video = new ffmpeg_movie($filePath);

$duration = $video->getDuration();
$width    = $video->getFrameWidth();
$height   = $video->getFrameHeight()

FF-MPEG には便利な機能がたくさんあります。

于 2012-11-05T20:26:04.437 に答える
-1

私はphp拡張機能をインストールしたくないので(Windows、特にWindows 64ビットでは災害作業です)、ffprobeとphp(次のように)を使用して次元を取得します:

$xcmd = '{$ffmpeg-stored-folder}\bin\ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width '.$filename.' > vdogeom.txt';
exec($xcmd);
$lines = file("vdogeom.txt");
foreach ($lines as $v) eval('$'.$v.';');
}
echo strtoupper(pathinfo($filename, PATHINFO_EXTENSION)).intval(round(filesize($filename) * .0009765625))."K".$streams_stream_0_width."x".$streams_stream_0_height;

「 WMV540K640x480」のような出力になります

ここでの唯一のトリックは、「PHP の PATH 環境が非常に奇妙であるため、ffprobe 実行ファイルのフルパスを指定する必要がある」です。

于 2015-04-16T10:13:31.500 に答える