php - ffmpeg:在php中使用返回的数据

标签 php ssh ffmpeg backticks

我已经开始使用 ffmpeg我对它很陌生,所以请多多包涵。

我已经安装了ffmpeg在我的服务器上,效果很好;通过 ssh 登录时,我可以运行某些命令并获取输出数据

例如我可以运行

ffmpeg -i Sleep\ Away.mp3 

它返回以下内容:
ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug 20 2012 09:28:43 with clang 3.1 (tags/Apple/clang-318.0.61)
  configuration: --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-hardcoded-tables --enable-shared --enable-pthreads --disable-indevs --cc=clang
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mp3 @ 0x7f9694011a00] Header missing
    Last message repeated 13 times
[mp3 @ 0x7f9694007c00] max_analyze_duration 5000000 reached at 5007020
[mp3 @ 0x7f9694007c00] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'Sleep Away.mp3':
  Metadata:
    track           : 3
    album           : Bob Acri
    artist          : Bob Acri
    title           : Sleep Away
    genre           : Jazz
    album_artist    : Bob Acri
    composer        : Robert R. Acri
    date            : 2004
  Duration: 00:03:21.77, start: 0.000000, bitrate: 192 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 192 kb/s
At least one output file must be specified

我要问的问题是,如何使用上面的输出数据?我正在开发一个音乐网站;假设我想遍历所有 MP3 文件并将有关它们的信息保存到数据库中,以便上述结果:
Sleep Away.mp3    mp3    3:21    Jazz    2004     Bob Acri ...

显然在一张 table 上

到目前为止,我尝试使用 php 反引号运算符但没有成功。我只是想我会在这里提出一个问题,以从做过类似事情的人那里获得一些建议。

谢谢

更新 : 我试过以下
<?php $output = `ffmpeg -i Sleep\ Away.mp3`; echo "<pre>$output</pre>"; ?>
<?php $output = shell_exec('ffmpeg -i Sleep\ Away.mp3'); echo "<pre>$output</pre>"; ?>

两者似乎都没有返回任何东西。

最佳答案

ffmpeg以标准 发送该信息错误 , 而不是标准输出,即 shell_exec()捕获。

您需要添加:2>&1在您的命令结束时:

$out = shell_exec('/path/to/ffmpeg -i Sleep\ Away.mp3 2>&1');

关于php - ffmpeg:在php中使用返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12074267/

相关文章:

php - 另一个文件权限问题

php - 用两种语言构建网站,用户也可以输入他的数据

php - php-fpm 的负载平均/性能问题

php 运行 git 得到 "ssh Permission denied"

audio - 如何使用 ffmpeg 或 eac3to 将 2 个音频文件合并为一个?

php - 使用不同的 where 语句连接两个查询

sockets - 不允许两个套接字使用同一个端口吗?

elasticsearch - 用于 Elasticsearch 的 ssh 隧道

ffmpeg - 使用图像流流式传输视频

node.js - fluent-ffmpeg display_aspect_ratio 没有改变