【发布时间】:2012-08-02 01:29:24
【问题描述】:
如何从ffmpeg -i /var/thismovie.avi 的输出中获取特定信息,例如“持续时间”?
我需要帧高、帧宽、影片时长和帧频。所有这些都在上述命令的输出中,但是我如何单独获取我需要的位并将它们放入 PHP 中的变量中?
我已经放弃尝试安装ffmpeg-php,这是我在此之前用来完成相同工作的工具。
谢谢
ffmpeg -i /var/thismovie.avi 产生这样的输出
ffmpeg version N-43171-ga763caf Copyright (c) 2000-2012 the FFmpeg developers built on Aug 3 2012 07:56:19 with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52) configuration: --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-pic --enable-libx264 --enable-libxvid --disable-ffplay --enable-shared --enable-gpl --enable-postproc --enable-nonfree --enable-avfilter --enable-pthreads --extra-cflags=-fPIC libavutil 51. 66.100 / 51. 66.100 libavcodec 54. 48.100 / 54. 48.100 libavformat 54. 22.100 / 54. 22.100 libavdevice 54. 2.100 / 54. 2.100 libavfilter 3. 5.102 / 3. 5.102 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [avi @ 0x18e8e240] non-interleaved AVI [avi @ 0x18e8e240] max_analyze_duration 5000000 reached at 5000000 Input #0, avi, from '/var/www/vhosts/mysite.com/httpdocs/movie.avi': Duration: 00:00:10.76, start: 0.000000, bitrate: 5180 kb/s Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 50 tbc Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, s16, 128 kb/s At least one output file must be specified`
【问题讨论】:
-
ffmpeg-php 听起来完全是适合这项工作的工具。您尝试执行的操作听起来像是无法安装扩展程序的糟糕解决方法。
-
如果你能够使用
exec从php执行命令,你可以将命令的输出捕获为php变量,然后按照你喜欢的方式解析它 -
@Matt Ball 相反,它让我不必安装 ffmpeg-php 只是为了从电影中获取 4 个值。另一个原因是 ffmpeg-php 从我收集到的信息自 2007 年以来就没有开发过。我已经(并且需要)安装了 ffmpeg,那么为什么不直接利用它来获取我想要的信息呢?
-
@Hawili 是的,这就是我要去的地方,但是如何准确地解析信息?
-
添加一个示例输出,我会尝试告诉你如何