获取 H.264 MP4 的尺寸

Get the dimensions of a H.264 MP4

提问人:Pekka 提问时间:11/12/2009 最后编辑:Pekka 更新时间:4/28/2011 访问量:8662

问:

有没有人知道一种现成的、可靠的方法来判断在纯 PHP 中使用 H.264 编解码器编码的 MP4 的尺寸(宽度 x 高度),没有 ffmpeg 或类似的扩展名?

感谢所有回答,伙计们。赏金即将用完,在此之前,我没有时间检查所提供的解决方案。我会接受我认为最有可能奏效的解决方案。

PHP 视频 MP4 H.264

评论

0赞 Greg Beech 11/12/2009
据我所知,没有什么现成的,但 MPEG-4 标准有据可查。您可以通过几个小时的编码自己从文件中解析数据。
1赞 Earlz 12/1/2009
如果你在服务器上有适当的权限,你可以用正确的命令行参数执行可执行文件,以取回宽度 x 高度,我敢肯定ffmpeg
0赞 Pekka 12/5/2009
不,此服务器上没有命令行访问。这就是我要求PHP的原因。但当您拥有权限时,肯定是首选。

答:

0赞 Nazariy 11/12/2009 #1

原生 PHP 不支持这样的东西,ffmpeg 只是我想到的一个库。

1赞 Stu Thompson 11/12/2009 #2

想到了什么:

  • mediainfo 一个带有 GUI 的大型项目,但也有一个 CLI
  • mp4info(看似已解散的 mp4mpeg 项目的一部分)几乎是完美的
  • FFMPEG,尽管这对任务来说是矫枉过正的。话又说回来,你很可能需要它来执行其他任务
4赞 Bobbin 12/2/2009 #3

getID3 是纯 php,从各种媒体文件中提取大量信息。这将取决于首先对文件进行编码的内容,以及可用的元数据及其可靠性。getID3 有一个不错的演示页面,其中包含许多不同的文件类型。我试图发布更多链接,但作为新手,我只得到了一个。

评论

0赞 Pekka 12/2/2009
感谢您的链接,但据我所知,getID3 不做 MP4。
0赞 Bobbin 12/2/2009
在演示页面(getid3.org/demo)上有两个.mp4文件,例如 getid3.org/demo/MP4%20-%20aac.mp4.html。正如我所提到的,这将取决于用于编码 mp4 的内容,如果是 Quicktime,我敢打赌 getID3 会起作用。如果没有更多信息或示例文件,就很难分辨。您的文件被什么编码?
2赞 Alec Gorge 12/4/2009 #4

听起来 http://code.google.com/p/php-mp4info/ 可能是你的答案。它读取 MP4,但没有提到任何关于 H.264 的内容。

另外,您使用的是什么操作系统?

评论

0赞 Pekka 12/4/2009
哇,这看起来不错!无论使用何种编码,维度都可能存储在元数据中。我会研究一下。该站点将在 Linux 上运行。
0赞 Alec Gorge 12/5/2009
我看到的唯一不足之处是,如果视频没有正确处理元数据。
0赞 Alec Gorge 12/10/2009
祝你好运。如果你弄清楚了,你会在这里发布吗?
1赞 hitautodestruct 12/11/2012
@AlecGorge 此库不读取文件。只.mp4.f4v
0赞 Mathijs Segers 1/29/2015
老了,问题,但我遇到了这个。由于某种原因,Android 视频的纵向模式混合了宽度和高度,我确实从 mp4 中得到了这个,所以可以工作
1赞 Steve Graham 12/5/2009 #5

ffmpeg 和 php:http://www.lampdeveloper.co.uk/linux/detecting-a-videos-dimensions-using-php-and-ffmpeg.html

评论

0赞 Gregory Pakosz 12/6/2009
问题提到“没有FFMPEG”:)
1赞 Jon Skarpeteig 4/28/2011 #6

php-reader 是纯 PHP 中 done 的完整实现。您可以使用此库来读取 mp4 包含的所有框,例如包含文件元数据的 moov 原子。ISO 14496