php - 如何使用带有 exec 的 avconv 和 php 显示流的屏幕截图?

标签 php linux exec screenshot avconv

运行此脚本时,图像将保存到文件中:

<?php

  $url = "rtmp://109.71.162.112:1935/live/sd.jasminchannel.stream";
  exec('avconv -i "'.$url.'" -ss 00:00:01 -t 1 -r 1 -f image2 "screenshot.jpg" 2>&1', $output, $status);

  header("Content-type: image/png");
  readfile("screenshot.jpg");

我希望它在屏幕上返回(即时意味着它,写入变量,而不是不保存到文件然后读取、显示、删除这个文件):

<?php

  $url = "rtmp://109.71.162.112:1935/live/sd.jasminchannel.stream";
  exec('avconv -i "'.$url.'" -ss 00:00:01 -t 1 -r 1 -f image2 $variable 2>&1', $output, $status);

  header("Content-type: image/png");
  echo $variable;

我该怎么做?

最佳答案

我认为这会解决您的问题:

<?php

  $url = "rtmp://109.71.162.112:1935/live/sd.jasminchannel.stream";
  header("content-type: image/jpeg");
  echo passthru('avconv -i "'.$url.'" -ss 00:00:01 -t 1 -r 1 -f image2 pipe:.jpg 2>/dev/null');

这是未经测试的,但它应该有效。我一直在处理类似的问题: https://gist.github.com/megasaturnv/a42ed77d3d08d0d3d91725dbe06a0efe

以及标签中的图像: https://gist.github.com/megasaturnv/6e5965732d4cff91f2e976e7a39efbaa

关于php - 如何使用带有 exec 的 avconv 和 php 显示流的屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46166162/

相关文章:

php - MYSQL DB 时间戳不保存记录。而是以日期时间格式保存

php - 为什么我从 curl 得到 HTTP_CODE 0?

linux - RHEL - 有限的 root 访问权限

c - execvp ls : cannot access ' ' : No such file or directory

php - 在 Laravel 中将值从 url 传递到 Controller

javascript - 错误代码约定?

python - 空字符串列表在 python 中返回非零长度

C Readdir 不读取所有文件

php - 如何通过 PHP exec() 在 Raspberry 上使用 sudo 执行二进制文件?

perl - 将带引号的字符串传递给system(),使引号保持完整