Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在播放mp4文件之前,如何在php代码中获取其宽度和高度_Php_Mp4 - Fatal编程技术网

在播放mp4文件之前,如何在php代码中获取其宽度和高度

在播放mp4文件之前,如何在php代码中获取其宽度和高度,php,mp4,Php,Mp4,我需要在弹出窗口中打开扩展名为.mp4的文件。它踢得很好,其他一切都做得很完美。但当弹出窗口打开时。在那个时候,我希望它以与视频相同的高度和宽度打开。我的网页上有超过25个这样的视频。因此,我将在代码中存储该参数,然后在打开弹出窗口时在javascript中使用它。所以在播放视频文件之前,我想知道视频文件的宽度和高度。我想知道php中的这些参数 试试图书馆 例如,$info对象如下所示: stdClass Object ( [hasVideo] => 1 [hasAudio] =&

我需要在弹出窗口中打开扩展名为.mp4的文件。它踢得很好,其他一切都做得很完美。但当弹出窗口打开时。在那个时候,我希望它以与视频相同的高度和宽度打开。我的网页上有超过25个这样的视频。因此,我将在代码中存储该参数,然后在打开弹出窗口时在javascript中使用它。所以在播放视频文件之前,我想知道视频文件的宽度和高度。我想知道php中的这些参数

试试图书馆

例如,$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
)
尝试使用。您可以通过sys调用或使用位于此处的PHP FF-MPEG扩展来使用它

以下是使用FF-MPEG-PHP从视频中获取一些元信息的方法:

$video = new ffmpeg_movie($filePath);

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

FF-MPEG还有一系列有用的功能

我不想安装任何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”之类的输出


这里唯一的技巧是:“我必须指定ffprobe执行文件的完整路径,因为我的PHP路径环境非常奇怪。”

我的视频在amazons3服务器上。因此,通过给出它的路径,它在stbl中给出了错误0x21000000-*:(尝试了id,但得到了一个错误:“0x66726565根目录中的free”。我猜它有点过时。更简单的解决方案是将结果返回为json:ffprobe-v quiet-print_format json-show_format-show_streams out1.mp4
$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;