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